Sha256: f0292ed57524cdd6780c6f647457ae57c834da831431a10fbb98db52c841b1ca

Contents?: true

Size: 752 Bytes

Versions: 4

Compression:

Stored size: 752 Bytes

Contents

require 'sax-machine/handlers/sax_abstract_handler'
require 'ox'

module SAXMachine
  class SAXOxHandler < Ox::Sax
    include SAXAbstractHandler

    def initialize(*args)
      _initialize(*args)
      _reset_element
    end

    def attr(name, str)
      @attrs[name] = str
    end

    def attrs_done
      _start_element(@element, @attrs)
      _reset_element
    end

    def start_element(name)
      @element = name
    end

    def error(message, line, column)
      _error("#{message} on line #{line} column #{column}")
    end

    alias_method :text, :_characters
    alias_method :cdata, :_characters
    alias_method :end_element, :_end_element

    private

    def _reset_element
      @attrs = {}
      @element = ""
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sax-machine-1.0.2 lib/sax-machine/handlers/sax_ox_handler.rb
sax-machine-1.0.1 lib/sax-machine/handlers/sax_ox_handler.rb
sax-machine-1.0.0 lib/sax-machine/handlers/sax_ox_handler.rb
sax-machine-0.3.0 lib/sax-machine/handlers/sax_ox_handler.rb