Class: ESBify::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/ESBify/base.rb

Direct Known Subclasses

Behavior, Expectation, Strategy

Instance Method Summary collapse

Constructor Details

#initializeBase

Returns a new instance of Base.



3
4
5
# File 'lib/ESBify/base.rb', line 3

def initialize
  @data = []
end

Instance Method Details

#defaultsObject



7
8
9
# File 'lib/ESBify/base.rb', line 7

def defaults
  
end

#keysObject



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_partialObject



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
  #puts b.inspect
  "\n" + b.target!
end