rubberband 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52,7 +52,7 @@ module ElasticSearch
52
52
  @total_entries = response["hits"]["total"]
53
53
  @_shards = response["_shards"]
54
54
  @facets = response["facets"]
55
- @scroll_id = response["_scrollId"]
55
+ @scroll_id = response["_scroll_id"] || response["_scrollId"]
56
56
  populate(@options[:ids_only])
57
57
  end
58
58
 
@@ -82,9 +82,18 @@ module ElasticSearch
82
82
  end
83
83
 
84
84
  #ids_only Return ids instead of hits
85
- def scroll(scroll_id, options={})
86
- response = execute(:scroll, scroll_id)
87
- Hits.new(response, { :ids_only => options[:ids_only] }).freeze
85
+ #pass a block to execute the block for each batch of hits
86
+ def scroll(scroll_id, options={}, &block)
87
+ begin
88
+ search_options = options.reject { |k, v| [:page, :per_page, :ids_only, :limit, :offset].include?(k) }
89
+ response = execute(:scroll, scroll_id, options)
90
+ hits = Hits.new(response, { :ids_only => options[:ids_only] }).freeze
91
+ if block_given? && !hits.empty?
92
+ yield hits
93
+ scroll_id = hits.scroll_id
94
+ end
95
+ end until !block_given? || hits.empty?
96
+ hits
88
97
  end
89
98
 
90
99
  #df The default field to use when no field prefix is defined within the query.
@@ -46,8 +46,9 @@ module ElasticSearch
46
46
  results # {"hits"=>{"hits"=>[{"_id", "_type", "_source", "_index", "_score"}], "total"}, "_shards"=>{"failed", "total", "successful"}}
47
47
  end
48
48
 
49
- def scroll(scroll_id)
50
- response = request(:get, {:op => "_search/scroll"}, {:scroll_id => scroll_id })
49
+ def scroll(scroll_id, options={})
50
+ # patron cannot submit get requests with content, so we pass the scroll_id in the parameters
51
+ response = request(:get, {:op => "_search/scroll"}, options.merge(:scroll_id => scroll_id))
51
52
  handle_error(response) unless response.status == 200
52
53
  results = encoder.decode(response.body)
53
54
  # unescape ids
@@ -2,7 +2,7 @@ module ElasticSearch
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- PATCH = 8
5
+ PATCH = 10
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rubberband}
8
- s.version = "0.0.9"
8
+ s.version = "0.0.10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["grantr"]
12
- s.date = %q{2011-02-23}
12
+ s.date = %q{2011-03-25}
13
13
  s.description = %q{An ElasticSearch client with ThriftClient-like failover handling.}
14
14
  s.email = %q{grantr@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -63,7 +63,7 @@ Gem::Specification.new do |s|
63
63
  s.homepage = %q{http://github.com/grantr/rubberband}
64
64
  s.licenses = ["Apache v2.0"]
65
65
  s.require_paths = ["lib"]
66
- s.rubygems_version = %q{1.3.7}
66
+ s.rubygems_version = %q{1.6.2}
67
67
  s.summary = %q{An ElasticSearch client.}
68
68
  s.test_files = [
69
69
  "spec/admin_spec.rb",
@@ -75,7 +75,6 @@ Gem::Specification.new do |s|
75
75
  ]
76
76
 
77
77
  if s.respond_to? :specification_version then
78
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
79
78
  s.specification_version = 3
80
79
 
81
80
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
metadata CHANGED
@@ -1,187 +1,147 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rubberband
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 9
9
- version: 0.0.9
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.10
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - grantr
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-02-23 00:00:00 -08:00
12
+ date: 2011-03-25 00:00:00.000000000 -07:00
18
13
  default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
21
16
  name: patron
22
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &10610880 !ruby/object:Gem::Requirement
23
18
  none: false
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- version: "0"
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
30
23
  type: :runtime
31
24
  prerelease: false
32
- version_requirements: *id001
33
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *10610880
26
+ - !ruby/object:Gem::Dependency
34
27
  name: yajl-ruby
35
- requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirement: &10609760 !ruby/object:Gem::Requirement
36
29
  none: false
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- segments:
41
- - 0
42
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
43
34
  type: :runtime
44
35
  prerelease: false
45
- version_requirements: *id002
46
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *10609760
37
+ - !ruby/object:Gem::Dependency
47
38
  name: bundler
48
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &10608320 !ruby/object:Gem::Requirement
49
40
  none: false
50
- requirements:
41
+ requirements:
51
42
  - - ~>
52
- - !ruby/object:Gem::Version
53
- segments:
54
- - 1
55
- - 0
56
- - 0
43
+ - !ruby/object:Gem::Version
57
44
  version: 1.0.0
58
45
  type: :development
59
46
  prerelease: false
60
- version_requirements: *id003
61
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *10608320
48
+ - !ruby/object:Gem::Dependency
62
49
  name: jeweler
63
- requirement: &id004 !ruby/object:Gem::Requirement
50
+ requirement: &10598620 !ruby/object:Gem::Requirement
64
51
  none: false
65
- requirements:
52
+ requirements:
66
53
  - - ~>
67
- - !ruby/object:Gem::Version
68
- segments:
69
- - 1
70
- - 5
71
- - 2
54
+ - !ruby/object:Gem::Version
72
55
  version: 1.5.2
73
56
  type: :development
74
57
  prerelease: false
75
- version_requirements: *id004
76
- - !ruby/object:Gem::Dependency
58
+ version_requirements: *10598620
59
+ - !ruby/object:Gem::Dependency
77
60
  name: simplecov
78
- requirement: &id005 !ruby/object:Gem::Requirement
61
+ requirement: &10585740 !ruby/object:Gem::Requirement
79
62
  none: false
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- segments:
84
- - 0
85
- - 3
86
- - 8
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
87
66
  version: 0.3.8
88
67
  type: :development
89
68
  prerelease: false
90
- version_requirements: *id005
91
- - !ruby/object:Gem::Dependency
69
+ version_requirements: *10585740
70
+ - !ruby/object:Gem::Dependency
92
71
  name: rspec
93
- requirement: &id006 !ruby/object:Gem::Requirement
72
+ requirement: &10582680 !ruby/object:Gem::Requirement
94
73
  none: false
95
- requirements:
74
+ requirements:
96
75
  - - ~>
97
- - !ruby/object:Gem::Version
98
- segments:
99
- - 2
100
- - 4
101
- version: "2.4"
76
+ - !ruby/object:Gem::Version
77
+ version: '2.4'
102
78
  type: :development
103
79
  prerelease: false
104
- version_requirements: *id006
105
- - !ruby/object:Gem::Dependency
80
+ version_requirements: *10582680
81
+ - !ruby/object:Gem::Dependency
106
82
  name: yard
107
- requirement: &id007 !ruby/object:Gem::Requirement
83
+ requirement: &10579800 !ruby/object:Gem::Requirement
108
84
  none: false
109
- requirements:
85
+ requirements:
110
86
  - - ~>
111
- - !ruby/object:Gem::Version
112
- segments:
113
- - 0
114
- - 6
115
- version: "0.6"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.6'
116
89
  type: :development
117
90
  prerelease: false
118
- version_requirements: *id007
119
- - !ruby/object:Gem::Dependency
91
+ version_requirements: *10579800
92
+ - !ruby/object:Gem::Dependency
120
93
  name: mocha
121
- requirement: &id008 !ruby/object:Gem::Requirement
94
+ requirement: &10578640 !ruby/object:Gem::Requirement
122
95
  none: false
123
- requirements:
96
+ requirements:
124
97
  - - ~>
125
- - !ruby/object:Gem::Version
126
- segments:
127
- - 0
128
- - 9
129
- - 11
98
+ - !ruby/object:Gem::Version
130
99
  version: 0.9.11
131
100
  type: :development
132
101
  prerelease: false
133
- version_requirements: *id008
134
- - !ruby/object:Gem::Dependency
102
+ version_requirements: *10578640
103
+ - !ruby/object:Gem::Dependency
135
104
  name: patron
136
- requirement: &id009 !ruby/object:Gem::Requirement
105
+ requirement: &10577460 !ruby/object:Gem::Requirement
137
106
  none: false
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- segments:
142
- - 0
143
- version: "0"
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
144
111
  type: :runtime
145
112
  prerelease: false
146
- version_requirements: *id009
147
- - !ruby/object:Gem::Dependency
113
+ version_requirements: *10577460
114
+ - !ruby/object:Gem::Dependency
148
115
  name: yajl-ruby
149
- requirement: &id010 !ruby/object:Gem::Requirement
116
+ requirement: &10576200 !ruby/object:Gem::Requirement
150
117
  none: false
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- segments:
155
- - 0
156
- version: "0"
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
157
122
  type: :runtime
158
123
  prerelease: false
159
- version_requirements: *id010
160
- - !ruby/object:Gem::Dependency
124
+ version_requirements: *10576200
125
+ - !ruby/object:Gem::Dependency
161
126
  name: rspec
162
- requirement: &id011 !ruby/object:Gem::Requirement
127
+ requirement: &10574660 !ruby/object:Gem::Requirement
163
128
  none: false
164
- requirements:
129
+ requirements:
165
130
  - - ~>
166
- - !ruby/object:Gem::Version
167
- segments:
168
- - 2
169
- - 4
170
- version: "2.4"
131
+ - !ruby/object:Gem::Version
132
+ version: '2.4'
171
133
  type: :development
172
134
  prerelease: false
173
- version_requirements: *id011
135
+ version_requirements: *10574660
174
136
  description: An ElasticSearch client with ThriftClient-like failover handling.
175
137
  email: grantr@gmail.com
176
138
  executables: []
177
-
178
139
  extensions: []
179
-
180
- extra_rdoc_files:
140
+ extra_rdoc_files:
181
141
  - LICENSE
182
142
  - README.rdoc
183
143
  - TODO
184
- files:
144
+ files:
185
145
  - .autotest
186
146
  - .rspec
187
147
  - CONTRIBUTORS
@@ -225,38 +185,34 @@ files:
225
185
  - vendor/elasticsearch/elasticsearch.thrift
226
186
  has_rdoc: true
227
187
  homepage: http://github.com/grantr/rubberband
228
- licenses:
188
+ licenses:
229
189
  - Apache v2.0
230
190
  post_install_message:
231
191
  rdoc_options: []
232
-
233
- require_paths:
192
+ require_paths:
234
193
  - lib
235
- required_ruby_version: !ruby/object:Gem::Requirement
194
+ required_ruby_version: !ruby/object:Gem::Requirement
236
195
  none: false
237
- requirements:
238
- - - ">="
239
- - !ruby/object:Gem::Version
240
- hash: -2113882144738525775
241
- segments:
196
+ requirements:
197
+ - - ! '>='
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ segments:
242
201
  - 0
243
- version: "0"
244
- required_rubygems_version: !ruby/object:Gem::Requirement
202
+ hash: -3653460652269889711
203
+ required_rubygems_version: !ruby/object:Gem::Requirement
245
204
  none: false
246
- requirements:
247
- - - ">="
248
- - !ruby/object:Gem::Version
249
- segments:
250
- - 0
251
- version: "0"
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
252
209
  requirements: []
253
-
254
210
  rubyforge_project:
255
- rubygems_version: 1.3.7
211
+ rubygems_version: 1.6.2
256
212
  signing_key:
257
213
  specification_version: 3
258
214
  summary: An ElasticSearch client.
259
- test_files:
215
+ test_files:
260
216
  - spec/admin_spec.rb
261
217
  - spec/bulk_spec.rb
262
218
  - spec/hits_spec.rb