class Infoboxer::Parser

Public Class Methods

document(text, traits = nil) click to toggle source
# File lib/infoboxer/parser.rb, line 24
def document(text, traits = nil)
  Tree::Document.new(paragraphs(text, traits))
end
fragment(text, traits = nil) click to toggle source
# File lib/infoboxer/parser.rb, line 28
def fragment(text, traits = nil)
  new(context(text, traits)).long_inline
end
inline(text, traits = nil) click to toggle source
# File lib/infoboxer/parser.rb, line 12
def inline(text, traits = nil)
  new(context(text, traits)).inline
end
new(context) click to toggle source
# File lib/infoboxer/parser.rb, line 54
def initialize(context)
  @context = context
  @re = OpenStruct.new(make_regexps)
  @logger = Logger.new($stdout).tap { |l| l.level = Logger::FATAL }
end
paragraph(text, traits = nil) click to toggle source
# File lib/infoboxer/parser.rb, line 20
def paragraph(text, traits = nil)
  paragraphs(text, traits).first
end
paragraphs(text, traits = nil) click to toggle source
# File lib/infoboxer/parser.rb, line 16
def paragraphs(text, traits = nil)
  new(context(text, traits)).paragraphs
end

Private Class Methods

coerce_traits(traits) click to toggle source
# File lib/infoboxer/parser.rb, line 38
def coerce_traits(traits)
  case traits
  when nil
    MediaWiki::Traits.default
  when Hash
    MediaWiki::Traits.new(traits)
  when MediaWiki::Traits
    traits
  else
    fail(ArgumentError, "Can't coerce site traits from #{traits.inspect}")
  end
end
context(text, traits) click to toggle source
# File lib/infoboxer/parser.rb, line 34
def context(text, traits)
  Context.new(text, coerce_traits(traits))
end

Private Instance Methods

log(msg) click to toggle source
# File lib/infoboxer/parser.rb, line 71
def log(msg)
  @logger.info "#{msg} | #{@context.lineno}:#{@context.colno}: #{@context.current}"
end