class Eiwa::Kanjidic::Doc
Public Class Methods
new(each_entry_block)
click to toggle source
# File lib/eiwa/kanjidic/doc.rb, line 11 def initialize(each_entry_block) @each_entry_block = each_entry_block @current = nil end
Public Instance Methods
characters(s)
click to toggle source
# File lib/eiwa/kanjidic/doc.rb, line 34 def characters(s) @current.add_characters(s) end
end_element(name)
click to toggle source
# File lib/eiwa/kanjidic/doc.rb, line 22 def end_element(name) raise Eiwa::Error.new("Parsing error. Expected <#{@current.tag_name}> to close before <#{name}>") if @current.tag_name != name ending = @current ending.end_self if ending.is_a?(Tag::Character) @each_entry_block&.call(ending) end @current = ending.parent @current&.end_child(ending) end
error(msg)
click to toggle source
# File lib/eiwa/kanjidic/doc.rb, line 38 def error(msg) raise Eiwa::Error.new("Parsing error: #{msg}") end
start_element(name, attrs)
click to toggle source
# File lib/eiwa/kanjidic/doc.rb, line 16 def start_element(name, attrs) parent = @current @current = (TAGS[name] || Tag::Other).new @current.start(name, attrs, parent) end