[Rename to_xoxo to XOXO.dump, minor refactorings Christian Neukirchen **20060128152506] { hunk ./test_xoxo.rb 7 - html = l.to_xoxo + html = XOXO.dump(l) hunk ./test_xoxo.rb 13 - assert_equal '
  1. 1
    1. 2
    2. 3
', l.to_xoxo + assert_equal '
  1. 1
    1. 2
    2. 3
', XOXO.dump(l) hunk ./test_xoxo.rb 19 - assert_equal '
  1. name
    Kevin
    test
    1
', h.to_xoxo + assert_equal '
  1. name
    Kevin
    test
    1
', XOXO.dump(h) hunk ./test_xoxo.rb 24 - assert_equal '
  1. test
', l.to_xoxo + assert_equal '
  1. test
', XOXO.dump(l) hunk ./test_xoxo.rb 29 - html = l.to_xoxo - html_wrap = l.to_xoxo(:html_wrap => true) + html = XOXO.dump(l) + html_wrap = XOXO.dump(l, :html_wrap => true) hunk ./test_xoxo.rb 36 - html = l.to_xoxo(:html_wrap => true) + html = XOXO.dump(l, :html_wrap => true) hunk ./test_xoxo.rb 46 - html = l.to_xoxo(:html_wrap => true, :css => 'reaptest.css') + html = XOXO.dump(l, :html_wrap => true, :css => 'reaptest.css') hunk ./test_xoxo.rb 56 - html = h.to_xoxo - newh = XOXO.load(html) - assert_equal h, newh + assert_equal h, XOXO.load(XOXO.dump(h)) hunk ./test_xoxo.rb 61 - html = h.to_xoxo - newh = XOXO.load(html) - assert_equal h, newh + assert_equal h, XOXO.load(XOXO.dump(h)) hunk ./test_xoxo.rb 66 - html = h.to_xoxo - newh = XOXO.load(html) - assert_equal h, newh + assert_equal h, XOXO.load(XOXO.dump(h)) hunk ./test_xoxo.rb 72 - html = h.to_xoxo - newh = XOXO.load(html) - assert_equal h, newh + assert_equal h, XOXO.load(XOXO.dump(h)) hunk ./test_xoxo.rb 77 - html = l.to_xoxo - newl = XOXO.load(html) - assert_equal l, newl + assert_equal l, XOXO.load(XOXO.dump(l)) hunk ./test_xoxo.rb 82 - html = l.to_xoxo - newl = XOXO.load(html) - assert_equal l, newl + assert_equal l, XOXO.load(XOXO.dump(l)) hunk ./test_xoxo.rb 87 - html = l.to_xoxo - newl = XOXO.load(html) - assert_equal l, newl + assert_equal l, XOXO.load(XOXO.dump(l)) hunk ./test_xoxo.rb 91 - d = { + h = { hunk ./test_xoxo.rb 97 - html = d.to_xoxo - newd = XOXO.load(html) - assert_equal d, newd + assert_equal h, XOXO.load(XOXO.dump(h)) hunk ./test_xoxo.rb 101 - d = XOXO.load '
    bad
  1. worse
    good
    buy
    now
' - assert_equal({'good' => 'buy'}, d) + h = XOXO.load '
    bad
  1. worse
    good
    buy
    now
' + assert_equal({'good' => 'buy'}, h) hunk ./test_xoxo.rb 131 - d = XOXO.load xoxo_sample - d2 = { + h = XOXO.load xoxo_sample + h2 = { hunk ./test_xoxo.rb 140 - xoxo_again = d.to_xoxo - assert_equal(d, d2) + assert_equal h2, XOXO.load(xoxo_sample) hunk ./test_xoxo.rb 214 - d = {'url' => 'http://example.com/more.xoxo', - 'title' => 'sample url','type' => "text/xml", - 'rel' => 'help','text' => 'an example'} - - assert_equal '
  1. an example
', d.to_xoxo + h = { + 'url' => 'http://example.com/more.xoxo', + 'title' => 'sample url', + 'type' => "text/xml", + 'rel' => 'help', + 'text' => 'an example' + } + assert_equal '
  1. an example
', XOXO.dump(h) hunk ./test_xoxo.rb 225 - d = {'url' => 'http://example.com/more.xoxo', - 'title' => 'sample url','type' => "text/xml", - 'rel' => 'help','text' => 'an example'} - assert_equal d, XOXO.load(d.to_xoxo) + h = { + 'url' => 'http://example.com/more.xoxo', + 'title' => 'sample url', + 'type' => "text/xml", + 'rel' => 'help', + 'text' => 'an example' + } + assert_equal h, XOXO.load(XOXO.dump(h)) hunk ./test_xoxo.rb 236 - d = {'url' => 'http://example.com/more.xoxo', - 'title' => 'sample url','type' => "text/xml", - 'rel' => 'help'} - assert_equal d, XOXO.load(d.to_xoxo) + h = { + 'url' => 'http://example.com/more.xoxo', + 'title' => 'sample url', + 'type' => "text/xml", + 'rel' => 'help' + } + assert_equal h, XOXO.load(XOXO.dump(h)) hunk ./test_xoxo.rb 246 - d = {'url' => 'http://example.com/more.xoxo'} - assert_equal d, XOXO.load(d.to_xoxo) + h = {'url' => 'http://example.com/more.xoxo'} + assert_equal h, XOXO.load(XOXO.dump(h)) hunk ./test_xoxo.rb 254 - assert_equal kmattn, XOXO.load(kmattn).to_xoxo - assert_equal XOXO.load(kmattn), XOXO.load(XOXO.load(kmattn).to_xoxo) - assert_equal XOXO.load(kmattn).to_xoxo, - XOXO.load(XOXO.load(kmattn).to_xoxo).to_xoxo + assert_equal kmattn, XOXO.dump(XOXO.load(kmattn)) + assert_equal XOXO.load(kmattn), XOXO.load(XOXO.dump(XOXO.load(kmattn))) + assert_equal XOXO.dump(XOXO.load(kmattn)), + XOXO.dump(XOXO.load(XOXO.dump(XOXO.load(kmattn)))) hunk ./test_xoxo.rb 262 - assert_equal unicode, XOXO.load(unicode.to_xoxo) + assert_equal unicode, XOXO.load(XOXO.dump(unicode)) hunk ./xoxo.rb 1 -class Array - def to_xoxo(options={}) - XOXO.to_xoxo(self, options) - end -end +require 'rexml/parsers/pullparser' hunk ./xoxo.rb 3 -class Hash - def to_xoxo(options={}) - XOXO.to_xoxo(self, options) +module XOXO + def self.load(xoxo) + structs = Parser.new(xoxo).parse.structs + while structs.kind_of?(Array) && structs.size == 1 + structs = structs.first + end + structs hunk ./xoxo.rb 11 -end hunk ./xoxo.rb 12 -class String - def to_xoxo(options={}) - XOXO.to_xoxo(self, options) + def self.dump(structs, options={}) + unless struct.kind_of? Array + struct = [struct] + end + + if options[:html_wrap] + result = < + +EOF + + if options[:css] + result << %Q[] + end + + result << "%s" % make_xoxo(struct, 'xoxo') + + else + result = make_xoxo(struct, 'xoxo') #.encode('utf-8') + end + + result hunk ./xoxo.rb 36 -end hunk ./xoxo.rb 37 + def self.make_xoxo(struct, class_name=nil) + s = '' + case struct + when Array + if class_name + s << %Q[
    ] + else + s << "
      " + end + struct.each { |item| + s << %Q[
    1. #{make_xoxo item}
    2. ] + } + s << "
    " hunk ./xoxo.rb 51 -require 'rexml/parsers/pullparser' + when Hash + d = struct.dup + if d.has_key? 'url' + s << %Q[#{make_xoxo text}] + if d.has_key? 'text' + d.delete 'text' + end + d.delete 'url' + end hunk ./xoxo.rb 70 -class XOXO - class Parser + unless d.empty? + s << "
    " + d.each { |key, value| + s << %Q[
    #{key}
    #{make_xoxo value}
    ] + } + s << "
    " + end + + when String + s << struct + + else + s << struct.to_s # too gentle? + end + + s + end +end + +class XOXO::Parser hunk ./xoxo.rb 223 - - def self.load(xoxo) - structs = Parser.new(xoxo).parse.structs - while structs.kind_of?(Array) && structs.size == 1 - structs = structs.first - end - structs - end - - def self.to_xoxo(struct, options={}) - unless struct.kind_of? Array - struct = [struct] - end - - if options[:html_wrap] - result = < - -EOF - - if options[:css] - result << %Q[] - end - - result << "%s" % make_xoxo(struct, 'xoxo') - - else - result = make_xoxo(struct, 'xoxo') #.encode('utf-8') - end - - result - end - - def self.make_xoxo(struct, class_name=nil) - s = '' - case struct - when Array - if class_name - s << %Q[
      ] - else - s << "
        " - end - struct.each { |item| - s << %Q[
      1. #{make_xoxo item}
      2. ] - } - s << "
      " - - when Hash - d = struct.dup - if d.has_key? 'url' - s << %Q[#{make_xoxo text}] - if d.has_key? 'text' - d.delete 'text' - end - d.delete 'url' - end - - unless d.empty? - s << "
      " - d.each { |key, value| - s << %Q[
      #{key}
      #{make_xoxo value}
      ] - } - s << "
      " - end - - when String - s << struct - - else - s << struct.to_s # too gentle? - end - - s - end -end - }