Module: AamRb

Defined in:
lib/aam_rb.rb

Class Method Summary collapse

Class Method Details

.split_aam(content) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/aam_rb.rb', line 16

def split_aam(content)
  result = {}
  current_name = nil
  current_builder = nil

  content.each_line do |raw_line|
    line = raw_line.strip
    next if line.empty?

    header = parse_section_header(line)
    if header
      result[current_name] = current_builder if current_name && current_builder
      current_name = header
      current_builder = AAMBuilder.new
      next
    end

    next unless current_name && current_builder

    assignment = parse_assignment(line)
    current_builder.add_line(*assignment) if assignment
  end

  result[current_name] = current_builder if current_name && current_builder
  result
end