class Saxerator::Adapters::Ox

Attributes

attributes[R]
name[RW]
reader[R]

Public Class Methods

new(reader) click to toggle source
# File lib/saxerator/adapters/ox.rb, line 18
def initialize(reader)
  @reader = reader

  @attributes = {}
  @name = ''
end
parse(source, reader) click to toggle source
# File lib/saxerator/adapters/ox.rb, line 9
def self.parse(source, reader)
  handler = new(reader)
  ::Ox.sax_parse(handler, source)
end

Public Instance Methods

attr(name, value) click to toggle source
# File lib/saxerator/adapters/ox.rb, line 30
def attr(name, value)
  attributes[name.to_s] = value
end
cdata(str)
Alias for: text
end_element(name) click to toggle source
# File lib/saxerator/adapters/ox.rb, line 42
def end_element(name)
  guard!

  name = name.to_s
  name = strip_namespace(name) if reader.ignore_namespaces?
  reader.end_element(name)
end
error(message, _, _) click to toggle source
# File lib/saxerator/adapters/ox.rb, line 57
def error(message, _, _)
  raise Saxerator::ParseException, message
end
guard!() click to toggle source
# File lib/saxerator/adapters/ox.rb, line 25
def guard!
  reader.start_element(name, attributes.to_a) unless name.empty?
  reset!
end
start_element(name) click to toggle source
# File lib/saxerator/adapters/ox.rb, line 34
def start_element(name)
  guard!

  name = name.to_s
  name = strip_namespace(name) if reader.ignore_namespaces?
  self.name = name
end
text(str) click to toggle source
# File lib/saxerator/adapters/ox.rb, line 50
def text(str)
  guard!
  reader.characters(str)
end
Also aliased as: cdata

Private Instance Methods

reset!() click to toggle source
# File lib/saxerator/adapters/ox.rb, line 63
def reset!
  @attributes.clear
  @name = ''
end
strip_namespace(name) click to toggle source
# File lib/saxerator/adapters/ox.rb, line 68
def strip_namespace(name)
  name.split(':').last
end