From 6581009636f784295d041bef3f68d9b56fd4a192 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Wed, 11 Jul 2012 15:16:26 +0100 Subject: [PATCH] Remove Streamer#find Let the user deal with traversing the hash --- lib/jeff/streamer.rb | 25 ------------------------- spec/jeff/streamer_spec.rb | 27 +-------------------------- 2 files changed, 1 insertion(+), 51 deletions(-) diff --git a/lib/jeff/streamer.rb b/lib/jeff/streamer.rb index 1289889..2d98d2e 100644 --- a/lib/jeff/streamer.rb +++ b/lib/jeff/streamer.rb @@ -11,31 +11,6 @@ def call(chunk, remaining_bytes, total_bytes) @parser.finish if remaining_bytes == 0 end - # Queries response for a key. - # - # key - A String key. - # - # Returns an Array of matches. - def find(key, node = nil) - node ||= root - - case node - when Array - node - .map { |val| find key, val } - .compact - .flatten - when Hash - if node.has_key? key - [node[key]] - else - node - .values - .map { |val| find key, val } - .compact - .flatten - end - end def document @parser.document end diff --git a/spec/jeff/streamer_spec.rb b/spec/jeff/streamer_spec.rb index fb7d27f..0d8dddb 100644 --- a/spec/jeff/streamer_spec.rb +++ b/spec/jeff/streamer_spec.rb @@ -8,14 +8,7 @@ module Jeff %{ - - 1 - 2 - 3 - - - 4 - + 1 }.strip.gsub />\s+<' end @@ -31,23 +24,5 @@ module Jeff streamer.root.should have_key 'foo' end - - describe '#find' do - before do - streamer.call xml, 0, xml.size - end - - it 'should find a node' do - streamer.find('baz').should eql ['1'] - end - - it 'should find a collection of nodes' do - streamer.find('qux').should eql ['2', '3', '4'] - end - - it 'should be empty if no matches found' do - streamer.find('corge').should be_empty - end - end end end