Method: ESBify::Base#parse!
- Defined in:
- lib/ESBify/base.rb
#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 |