Skip to content

Latest commit

 

History

History
30 lines (18 loc) · 681 Bytes

README.md

File metadata and controls

30 lines (18 loc) · 681 Bytes

#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

puts LineTree.new(lines).to_xml

output:

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

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

bike {colour: 'red'} 456