Class: Yome::Writer

Inherits:
Object
  • Object
show all
Defined in:
lib/yome/writer.rb

Instance Method Summary collapse

Constructor Details

#initialize(parser, lang) ⇒ Writer

Returns a new instance of Writer.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/yome/writer.rb', line 5

def initialize(parser, lang)
  @title = "NO TITLE"
  @parser = parser
  @lang = lang
  @sections = []
  @texts = []

  @parser.chips.each do |e|
    case e.kind
    when "title"
      @title = e.content
    when "summary"
      @summary = e.content
    when "url"
      @url = e.content
    when "section"
      @sections << Section.new(e)
    when "text"
      @texts << e
    end

    e.parse(parser)
  end

  @texts.each do |e|
    @sections.reverse.each do |sec|
      if e.path == sec.section.path && e.index > sec.section.index
        sec.add_text(e)
        break
      end
    end
  end
end

Instance Method Details

#headerObject



39
40
41
42
43
# File 'lib/yome/writer.rb', line 39

def header
  str = ""
  str += "#{@summary}\n\n" if @summary
  str += "#{@url}\n\n" if @url
end

#resultObject



51
52
53
54
55
56
57
# File 'lib/yome/writer.rb', line 51

def result
  <<EOS
\# #{@title}
#{header}
#{sections}
EOS
end

#sectionsObject



45
46
47
48
49
# File 'lib/yome/writer.rb', line 45

def sections
  @sections.sort_by { |e| e.priority }.map do |e|
    e.result(@parser, @lang) # TODO: Auto detect lang
  end.join("\n")
end