Module: Vobject

Defined in:
lib/vobject.rb,
lib/vobject/version.rb,
lib/vobject/property.rb

Defined Under Namespace

Modules: Rules Classes: Component, Property

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.parse(vobject) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/vobject.rb', line 48

def parse(vobject)
  vobject = unfold(vobject)
  lines   = []
  rule    = "(?<line>#{Rules::ABNF::Contentline})(?<remainder>(#{Rules::ABNF::Contentline})*)"

  parse_for_rule(Rules::ABNF::Vobject, vobject) do |parsed|

    remainder = vobject

    while !remainder.empty?
      parse_for_rule(rule, remainder) do |remainder_parsed|
        lines << remainder_parsed[:line]
        remainder = remainder_parsed[:remainder]
      end
    end
  end

  parse_lines lines
end