Introducing the line-tree gem

The line-tree gem is designed to parse lines of text, with each line being parsed as separate text fields which can be represented as an array.

If the line is indented then it's treated as a nested array of the line above.

require 'line-tree'

lines =<<LINES
a
  b 123
  bike 456
LINES


LineTree.new(lines).to_a
#=> [["a", ["b 123"], ["bike 456"]]]

XML

p

uts LineTree.new(lines).to_xml

output:

<?xml version='1.0' encoding='UTF-8'?>
<a><b>123</b><bike>456</bike></a>

If y ou want the XML to use attributes, write the attributes as a hash after the element name e.g.

bike {colour: 'red'} 456

Resources

Tags:
Source:
1839hrs.txt
Published:
13-04-2012 18:39