class Yome::Writer

Public Class Methods

new(parser, lang) click to toggle source
# 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

Public Instance Methods

header() click to toggle source
# File lib/yome/writer.rb, line 39
def header
  str = ""
  str += "#{@summary}\n\n" if @summary
  str += "#{@url}\n\n" if @url
end
result() click to toggle source
# File lib/yome/writer.rb, line 51
    def result
      <<EOS
\# #{@title}
#{header}
#{sections}
EOS
    end
sections() click to toggle source
# 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