Module: Legion::Extensions::Planner::Helpers::SpecParser

Extended by:
SpecParser
Included in:
SpecParser
Defined in:
lib/legion/extensions/planner/helpers/spec_parser.rb

Instance Method Summary collapse

Instance Method Details

#extract_requirements(content:) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/legion/extensions/planner/helpers/spec_parser.rb', line 20

def extract_requirements(content:)
  parsed = parse(content: content)
  section = parsed[:sections]['Requirements']
  return [] if section.nil?

  section.lines
         .map(&:strip)
         .select { |line| line.start_with?('- ') }
         .map { |line| line.sub(/\A-\s*/, '') }
end

#parse(content:) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/legion/extensions/planner/helpers/spec_parser.rb', line 10

def parse(content:)
  return { title: nil, sections: {} } if content.nil? || content.strip.empty?

  lines = content.lines.map(&:rstrip)
  title = extract_title(lines)
  sections = extract_sections(lines)

  { title: title, sections: sections }
end