Sha256: d9c30f871379816956c3a696a98c9d8f1fb5eea36e0eba2df2f1d32ed0abb92e
Contents?: true
Size: 1.6 KB
Versions: 3
Compression:
Stored size: 1.6 KB
Contents
# encoding: utf-8 require 'ostruct' require 'logger' module Infoboxer class Parser class ParsingError < RuntimeError end class << self def inline(text, traits = nil) new(context(text, traits)).inline end def paragraphs(text, traits = nil) new(context(text, traits)).paragraphs end def paragraph(text, traits = nil) paragraphs(text, traits).first end def document(text, traits = nil) Tree::Document.new(paragraphs(text, traits)) end def fragment(text, traits = nil) new(context(text, traits)).long_inline end private def context(text, traits) Context.new(text, coerce_traits(traits)) end 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 end include Tree def initialize(context) @context = context @re = OpenStruct.new(make_regexps) @logger = Logger.new(STDOUT).tap { |l| l.level = Logger::FATAL } end require_relative 'parser/inline' include Parser::Inline require_relative 'parser/paragraphs' include Parser::Paragraphs private require_relative 'parser/util' include Parser::Util def log(msg) @logger.info "#{msg} | #{@context.lineno}:#{@context.colno}: #{@context.current}" end end end require_relative 'parser/context'
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
infoboxer-0.3.1.pre | lib/infoboxer/parser.rb |
infoboxer-0.3.0.pre | lib/infoboxer/parser.rb |
infoboxer-0.3.0 | lib/infoboxer/parser.rb |