Class: Bookie::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/bookie/parser.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw_data, emitter) ⇒ Parser

Returns a new instance of Parser.



15
16
17
18
19
20
# File 'lib/bookie/parser.rb', line 15

def initialize(raw_data, emitter)
  @emitter        = emitter
  @parsed_content = []

  parse_contents(raw_data)
end

Instance Attribute Details

#parsed_contentObject (readonly)

Returns the value of attribute parsed_content.



13
14
15
# File 'lib/bookie/parser.rb', line 13

def parsed_content
  @parsed_content
end

Class Method Details

.parse(raw_data, emitter = Bookie::Emitters::Null.new) ⇒ Object



8
9
10
11
# File 'lib/bookie/parser.rb', line 8

def self.parse(raw_data, emitter=Bookie::Emitters::Null.new)
  parser = new(raw_data, emitter)
  parser.parsed_content
end

Instance Method Details

#extract_list(contents) ⇒ Object



40
41
42
43
44
# File 'lib/bookie/parser.rb', line 40

def extract_list(contents)
  list = List.new(contents.map { |e| e.chomp })
  @emitter.build_list(list)
  parsed_content << list
end

#extract_paragraph(paragraph_text) ⇒ Object



22
23
24
25
26
# File 'lib/bookie/parser.rb', line 22

def extract_paragraph(paragraph_text)
  paragraph = Paragraph.new(paragraph_text.gsub(/\s+/," "))
  @emitter.build_paragraph(paragraph)
  parsed_content << paragraph
end

#extract_raw_text(contents) ⇒ Object



28
29
30
31
32
# File 'lib/bookie/parser.rb', line 28

def extract_raw_text(contents)
  raw_text = RawText.new(contents)
  @emitter.build_raw_text(raw_text)
  parsed_content << raw_text      
end

#extract_section_heading(contents) ⇒ Object



34
35
36
37
38
# File 'lib/bookie/parser.rb', line 34

def extract_section_heading(contents)
  header = SectionHeading.new(contents.chomp)
  @emitter.build_section_heading(header)
  parsed_content << header
end