[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:11582] Re: A design/implementation question

From: TAKAHASHI Masayoshi <maki@...>
Date: 2001-02-26 12:05:59 UTC
List: ruby-talk #11582
Hi,

I tried ri. My impression: Cool!

Dave Thomas <Dave@PragmaticProgrammer.com> wrote:
> To do that with the current scheme would require that every client
> have the Ruby xmlparser module installed, which in turn requires Jim
> Clark's expat library. This seems onerous!
> 
> So, I initially started hacking together yet another flat file
> representation of the data. I'd ship it with ri, and when you type
> 'ruby install.rb', the installer would read it and generate the
> marshaled classes. Then that little alarm bell started ringing that
> said "there has to be a better way". Unfortunately, the battery ran
> down before it got around to telling me what that better way is.
> 
> So, any ideas?

We have already used a very useful flat file representation
of the data: Ruby script :-)

If your problem is installing xmlparser.so, not using xmltree.rb,
how about a plan as follows?
  1. convert XML file into Ruby script that builds DOM tree.
  2. distribute the script, xmltree.rb and some scripts using
     DOM to generate the marshaled data.

I attach simple script coverting XML file to Ruby script.

# I refered to MoonWolf's rd2xml.rb. Thanks! > MoonWolf

TAKAHASHI Masayoshi (maki@inac.co.jp)



#!/usr/bin/env ruby -Ku
require 'uconv'
require 'xmlparser'
require 'xmltree'
require 'xmltreebuilder'
require 'xmltreevisitor'

class XML2DOMVisitor<XML::SimpleTree::Visitor

  def initialize
  end
  
  def visit_Document(grove, *rest)
    super
  end
  
  def visit_Element(element, *rest)
    ret = "Element.new("
    ret += "'"+element.nodeName+"',"
    ret += "{"
    attrs = []
    nn = element.attributes
    nn.each{|node|
      attrs << '"' + node.name + '" => "' + node.value + '"'
    }
    ret += attrs.join(",")
    ret += "},["
    ret += element.children_accept(self, *rest).join(',').to_s
    ret += "])"
    ret
  end
  
  def visit_Text(text, *rest)
    ret = "Text.new('"
    ret += text.data.gsub("'","\\\\'")
    ret += "')"
    ret
  end
  
  def visit_CDATASection(text, *rest)
    # ignore.
  end
  
  def visit_Comment(comment, *rest)
    # ignore.
  end
  
  def visit_ProcessingInstruction(pi, *rest)
    # ignore.
  end
end

doc = XML::SimpleTreeBuilder.new.parse($<.read)

print "#!/usr/bin/env ruby -Ku\n"
print "require 'xmltree'\n"
print "include XML\n"
print "include XML::DOM\n"
print "$domtree = Document.new("
print  doc.accept(XML2DOMVisitor.new, []).to_s
print ")\n"

In This Thread