Class: Mumukit::Directives::Sections

Inherits:
Directive
  • Object
show all
Defined in:
lib/mumukit/directives/sections.rb

Instance Attribute Summary

Attributes inherited from Directive

#comment_type

Instance Method Summary collapse

Methods inherited from Directive

#comment_regexp

Instance Method Details

#regexpObject



2
3
4
# File 'lib/mumukit/directives/sections.rb', line 2

def regexp
  /<(.+?)##{comment_type.close_comment}(.+?)#{comment_type.open_comment}#(.+?)>/m
end

#split_sections(code) ⇒ Object



6
7
8
9
10
11
# File 'lib/mumukit/directives/sections.rb', line 6

def split_sections(code)
  sections = code.captures(comment_regexp).map do
    [$1, $2]
  end
  Hash[sections]
end

#transform(sections) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/mumukit/directives/sections.rb', line 13

def transform(sections)
  result = {}
  sections.each do |key, code|
    new_sections = split_sections(code)
    if new_sections.present?
      result.merge!(new_sections)
    else
      result[key] = code
    end
  end
  result
end