Sha256: 9396573a37f96ea5f247ff89ed22ee21c79af74ea8cf9939ef32b83eeda26ec9
Contents?: true
Size: 916 Bytes
Versions: 103
Compression:
Stored size: 916 Bytes
Contents
require 'benchmark' require 'rubygems' require 'nokogiri' class Parser < Nokogiri::XML::SAX::Document attr_reader :response def initialize reset end def reset @item = {} @response = { :items => [] } end def characters(string) @value << string.strip end def start_element(name, attrs = []) @value = nil end def end_element(name) case name when 'item' @response[:items] << @item @item = {} when 'key' @item[:key] = @value end end end data = <<-DATA <items> <item> <key>value</key> </item> </items> DATA COUNT = 100 Benchmark.bmbm(25) do |bench| bench.report('parse') do parser = Parser.new Nokogiri::XML::SAX::Parser.new(parser).parse(data) parser.response end bench.report('push') do parser = Parser.new Nokogiri::XML::SAX::PushParser.new(parser).write(data, true) parser.response end end
Version data entries
103 entries across 103 versions & 4 rubygems