Method: SXRB::Parser.parse_io

Defined in:
lib/sxrb/parser.rb

.parse_io(io, callbacks = nil) {|Proxy| ... } ⇒ nil

Parse IO containing XML.

Parameters:

  • io (IO)

    Path to stream to be parsed.

  • callbacks (optional, Callbacks) (defaults to: nil)

    Set of rules generated by define_rules.

Yields:

  • (Proxy)

    If callbacks parameter is not provided rules have to be defined directly in provided block.

Returns:

  • (nil)

Raises:

  • (ArgumentError)


83
84
85
86
87
88
89
# File 'lib/sxrb/parser.rb', line 83

def self.parse_io(io, callbacks = nil, &block)
  raise ArgumentError unless !!callbacks ^ !!block
  LibXML::XML::SaxParser.io(io).tap do |parser|
  parser.callbacks = callbacks || define_rules(&block)
  parser.parse
  end
end