Sha256: d4020afebbdde03220a9116b9348d75d27ab7850842e235f5413c8cb4eeb1c99
Contents?: true
Size: 1.76 KB
Versions: 5
Compression:
Stored size: 1.76 KB
Contents
# Author:: Jerome Pouiller <pouill_j@epita.fr>. # Copyright:: Copyright (c) 2004, 2005 TTK team. All rights reserved. # License:: LGPL # $Id: Xml.rb 571 2005-04-13 14:41:22Z polrop $ require 'rexml/document' module TTK module Dumpers class Xml < Dumper include Concrete def initialize ( *a, &b ) super @doc = @root = REXML::Document.new @io.puts '<?xml version="1.0" encoding="iso-8859-1"?>' end def add_elt ( elt, hsh={} ) @doc = @doc.add_element(REXML::Element.new(elt.xmlize)) hsh.each do |k, v| @doc.add_attribute(k.xmlize, v.xmlize) end @doc end private :add_elt def new_node ( path ) super add_elt(:node, :name => path.last.first) end protected :new_node def new_leaf ( path, node ) super @doc.add_text(node.xmlize_text) end protected :new_leaf def up ( path ) super @doc = @doc.parent unless @doc.parent.nil? end protected :up def close @root.write(@io, 0, false) @io.puts super end protected :close end # class Xml end # module Dumpers end # module TTK class String def xmlize count = -1 ret = '' each_byte do |c| if count >= 80 then ret << "\\<br />" << c count = 0 elsif c == ?\n then ret << '<br />' count = 0 else ret << c count += 1 end end ret end def xmlize_text ret = xmlize if ret =~ /^[\w.,;!?\/@~+=*-]*$/ ret else REXML::CData.new(ret) end end end # class String class Object def xmlize to_s.xmlize end def xmlize_text to_s.xmlize_text end end # class Object
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
ttk-0.1.576 | lib/ttk/dumpers/Xml.rb |
ttk-0.1.579 | lib/ttk/dumpers/Xml.rb |
ttk-0.1.580 | lib/ttk/dumpers/Xml.rb |
ttk-0.2.0 | lib/ttk/dumpers/Xml.rb |
ttk-0.2.1 | lib/ttk/dumpers/Xml.rb |