Class: ESBify::Base
- Inherits:
-
Object
show all
- Defined in:
- lib/ESBify/base.rb
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ Base
Returns a new instance of Base.
3
4
5
|
# File 'lib/ESBify/base.rb', line 3
def initialize
@data = []
end
|
Instance Method Details
#defaults ⇒ Object
7
8
9
|
# File 'lib/ESBify/base.rb', line 7
def defaults
end
|
#keys ⇒ Object
11
12
13
|
# File 'lib/ESBify/base.rb', line 11
def keys
defaults.keys.join("|")
end
|
#parse!(str) ⇒ Object
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/ESBify/base.rb', line 15
def parse!(str)
segs = str.split(/\s*\n---+\s*\n\s*/m)
@data += segs.map do |seg|
ms = seg.scan /(?:^|\n)(#{keys})\s*\:\s*(.+?)(?=(?:\n(?:#{keys})\s*\:|\z))/m
if m1 = seg.strip.match(/(?:^)(?!#{keys})(\w+)\s*\:\s*\n/)
ms << ["name", m1[1]]
end
defaults.merge Hash[*ms.flatten.map(&:strip)]
end
end
|
#to_xml_partial ⇒ Object
27
28
29
30
31
32
33
34
|
# File 'lib/ESBify/base.rb', line 27
def to_xml_partial
b = Builder::XmlMarkup.new indent: 2, margin: 1
@data.each do |sect|
xml_section(b, sect)
end
"\n" + b.target!
end
|