tire 0.1.13.5 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
data/examples/tire-dsl.rb CHANGED
@@ -533,7 +533,6 @@ end
533
533
  #
534
534
  # * [terms](http://www.elasticsearch.org/guide/reference/api/search/facets/terms-facet.html)
535
535
  # * [date](http://www.elasticsearch.org/guide/reference/api/search/facets/date-histogram-facet.html)
536
- # * [query](http://www.elasticsearch.org/guide/reference/api/search/facets/query-facet.html)
537
536
 
538
537
  # We have seen that _ElasticSearch_ facets enable us to fetch complex aggregations from our data.
539
538
  #
data/lib/tire/index.rb CHANGED
@@ -275,7 +275,11 @@ module Tire
275
275
 
276
276
  if Configuration.logger.level.to_s == 'debug'
277
277
  # FIXME: Depends on RestClient implementation
278
- body = @response ? MultiJson.encode(@response.body, :pretty => true) : error.http_body rescue ''
278
+ body = if @response
279
+ defined?(Yajl) ? Yajl::Encoder.encode(@json, :pretty => true) : MultiJson.encode(@json)
280
+ else
281
+ error.http_body rescue ''
282
+ end
279
283
  else
280
284
  body = ''
281
285
  end
@@ -5,49 +5,56 @@ module Tire
5
5
  include Enumerable
6
6
  include Pagination
7
7
 
8
- attr_reader :time, :total, :options, :results, :facets
8
+ attr_reader :time, :total, :options, :facets
9
9
 
10
10
  def initialize(response, options={})
11
- @options = options
12
- @time = response['took'].to_i
13
- @total = response['hits']['total'].to_i
14
- @results = response['hits']['hits'].map do |h|
15
- if Configuration.wrapper == Hash then h
16
- else
17
- document = {}
18
-
19
- # Update the document with content and ID
20
- document = h['_source'] ? document.update( h['_source'] || {} ) : document.update( h['fields'] || {} )
21
- document.update( {'id' => h['_id']} )
22
-
23
- # Update the document with meta information
24
- ['_score', '_type', '_index', '_version', 'sort', 'highlight'].each { |key| document.update( {key => h[key]} || {} ) }
25
-
26
- object = Configuration.wrapper.new(document)
27
- # TODO: Figure out how to circumvent mass assignment protection for id in ActiveRecord
28
- object.id = h['_id'] if object.respond_to?(:id=)
29
- # TODO: Figure out how mark record as "not new record" in ActiveRecord
30
- object.instance_variable_set(:@new_record, false) if object.respond_to?(:new_record?)
31
- object
32
- end
33
- end
34
- @facets = response['facets']
11
+ @response = response
12
+ @options = options
13
+ @time = response['took'].to_i
14
+ @total = response['hits']['total'].to_i
15
+ @facets = response['facets']
16
+ @wrapper = Configuration.wrapper
17
+ end
18
+
19
+ def results
20
+ @results ||= begin
21
+ @response['hits']['hits'].map do |h|
22
+ if @wrapper == Hash then h
23
+ else
24
+ document = {}
25
+
26
+ # Update the document with content and ID
27
+ document = h['_source'] ? document.update( h['_source'] || {} ) : document.update( h['fields'] || {} )
28
+ document.update( {'id' => h['_id']} )
29
+
30
+ # Update the document with meta information
31
+ ['_score', '_type', '_index', '_version', 'sort', 'highlight'].each { |key| document.update( {key => h[key]} || {} ) }
32
+
33
+ # for instantiating ActiveRecord with arbitrary attributes and setting @new_record etc.
34
+ if @wrapper.respond_to?(:instantiate, true)
35
+ @wrapper.send(:instantiate, document)
36
+ else
37
+ @wrapper.new(document)
38
+ end
39
+ end
40
+ end
41
+ end
35
42
  end
36
43
 
37
44
  def each(&block)
38
- @results.each(&block)
45
+ results.each(&block)
39
46
  end
40
47
 
41
48
  def empty?
42
- @results.empty?
49
+ results.empty?
43
50
  end
44
51
 
45
52
  def size
46
- @results.size
53
+ results.size
47
54
  end
48
55
 
49
56
  def [](index)
50
- @results[index]
57
+ results[index]
51
58
  end
52
59
 
53
60
  def to_ary
@@ -31,10 +31,6 @@ module Tire
31
31
  @value = { :range => { :field => field, :ranges => ranges }.update(options) }
32
32
  end
33
33
 
34
- def query(&block)
35
- @value = { :query => Query.new(&block).to_hash }
36
- end
37
-
38
34
  def to_json
39
35
  to_hash.to_json
40
36
  end
data/lib/tire/search.rb CHANGED
@@ -107,7 +107,11 @@ module Tire
107
107
 
108
108
  if Configuration.logger.level.to_s == 'debug'
109
109
  # FIXME: Depends on RestClient implementation
110
- body = @response ? MultiJson.encode(@json, :pretty => true) : body = error.http_body
110
+ body = if @response
111
+ defined?(Yajl) ? Yajl::Encoder.encode(@json, :pretty => true) : MultiJson.encode(@json)
112
+ else
113
+ error.http_body rescue ''
114
+ end
111
115
  else
112
116
  body = ''
113
117
  end
data/lib/tire/version.rb CHANGED
@@ -1,9 +1,12 @@
1
1
  module Tire
2
- VERSION = "0.1.13.5"
2
+ VERSION = "0.1.14"
3
3
 
4
4
  CHANGELOG =<<-END
5
5
  IMPORTANT CHANGES LATELY:
6
6
 
7
- # Added a "query" facet
7
+ # Added `<after/before>_update_elastic_search_index` callbacks for models
8
+ # Added percolator support for DSL and ActiveModel
9
+ # Lazy loading of ResultsCollection into memory
10
+ # Fixes for debug logging
8
11
  END
9
12
  end
@@ -1 +1 @@
1
- {"title" : "One", "tags" : ["ruby"], "published_on" : "2011-01-01", "draft" : true}
1
+ {"title" : "One", "tags" : ["ruby"], "published_on" : "2011-01-01"}
@@ -76,63 +76,6 @@ module Tire
76
76
 
77
77
  end
78
78
 
79
- context "query facets" do
80
-
81
- should "return aggregated values for string query" do
82
- s = Tire.search('articles-test') do
83
- facet 'tees' do
84
- query { string 'T*' }
85
- end
86
- end
87
-
88
- count = s.results.facets['tees']['count']
89
- assert_equal 2, count, s.results.facets['tees'].inspect
90
- end
91
-
92
- should "return aggregated values for a string query" do
93
- s = Tire.search('articles-test') do
94
- facet 'tees' do
95
- query { string 'T*' }
96
- end
97
- end
98
-
99
- count = s.results.facets['tees']['count']
100
- assert_equal 2, count, s.results.facets['tees'].inspect
101
- end
102
-
103
- should "return aggregated values for _exists_ string query" do
104
- s = Tire.search('articles-test') do
105
- facet 'drafts' do
106
- query { string '_exists_:draft' }
107
- end
108
- end
109
-
110
- count = s.results.facets['drafts']['count']
111
- assert_equal 1, count, s.results.facets['drafts'].inspect
112
- end
113
-
114
- should "return aggregated values for a terms query" do
115
- s = Tire.search('articles-test') do
116
- facet 'friends' do
117
- query { terms :tags, ['ruby', 'python'] }
118
- end
119
- end
120
-
121
- count = s.results.facets['friends']['count']
122
- assert_equal 2, count, s.results.facets['friends'].inspect
123
-
124
- s = Tire.search('articles-test') do
125
- facet 'friends' do
126
- query { terms :tags, ['ruby', 'python'], :minimum_match => 2 }
127
- end
128
- end
129
-
130
- count = s.results.facets['friends']['count']
131
- assert_equal 1, count, s.results.facets['friends'].inspect
132
- end
133
-
134
- end
135
-
136
79
  end
137
80
 
138
81
  end
@@ -36,7 +36,7 @@ module Tire
36
36
  end
37
37
 
38
38
  assert_equal 1, s.results.count
39
- assert_equal 3, s.results.facets['tags']['terms'].size
39
+ assert_equal 3, s.results.facets['tags'].size
40
40
  end
41
41
 
42
42
  end
@@ -37,6 +37,11 @@ module Tire
37
37
  end
38
38
  end
39
39
 
40
+ should "be populated lazily" do
41
+ collection = Results::Collection.new(@default_response)
42
+ assert_nil collection.instance_variable_get(:@results)
43
+ end
44
+
40
45
  should "store passed options" do
41
46
  collection = Results::Collection.new( @default_response, :per_page => 20, :page => 2 )
42
47
  assert_equal 20, collection.options[:per_page]
@@ -69,15 +69,6 @@ module Tire::Search
69
69
  end
70
70
  end
71
71
 
72
- context "query facet" do
73
- should "encode facet options" do
74
- f = Facet.new('q_facet') do
75
- query { string '_exists_:foo' }
76
- end
77
- assert_equal({ :q_facet => { :query => { :query_string => { :query => '_exists_:foo' } } } }.to_json, f.to_json)
78
- end
79
- end
80
-
81
72
  end
82
73
 
83
74
  end
metadata CHANGED
@@ -1,196 +1,255 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: tire
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.13.5
3
+ version: !ruby/object:Gem::Version
4
+ hash: 7
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 14
10
+ version: 0.1.14
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Karel Minarik
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-10-06 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2011-06-27 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
15
22
  name: rake
16
- requirement: &70327507052120 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
17
25
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 63
30
+ segments:
31
+ - 0
32
+ - 8
33
+ - 0
21
34
  version: 0.8.0
22
35
  type: :runtime
23
- prerelease: false
24
- version_requirements: *70327507052120
25
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
26
38
  name: rest-client
27
- requirement: &70327507051660 !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
28
41
  none: false
29
- requirements:
42
+ requirements:
30
43
  - - ~>
31
- - !ruby/object:Gem::Version
44
+ - !ruby/object:Gem::Version
45
+ hash: 15
46
+ segments:
47
+ - 1
48
+ - 6
49
+ - 0
32
50
  version: 1.6.0
33
51
  type: :runtime
34
- prerelease: false
35
- version_requirements: *70327507051660
36
- - !ruby/object:Gem::Dependency
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
37
54
  name: multi_json
38
- requirement: &70327507051120 !ruby/object:Gem::Requirement
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
39
57
  none: false
40
- requirements:
58
+ requirements:
41
59
  - - ~>
42
- - !ruby/object:Gem::Version
43
- version: '1.0'
60
+ - !ruby/object:Gem::Version
61
+ hash: 15
62
+ segments:
63
+ - 1
64
+ - 0
65
+ version: "1.0"
44
66
  type: :runtime
45
- prerelease: false
46
- version_requirements: *70327507051120
47
- - !ruby/object:Gem::Dependency
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
48
69
  name: activemodel
49
- requirement: &70327507050620 !ruby/object:Gem::Requirement
70
+ prerelease: false
71
+ requirement: &id004 !ruby/object:Gem::Requirement
50
72
  none: false
51
- requirements:
73
+ requirements:
52
74
  - - ~>
53
- - !ruby/object:Gem::Version
54
- version: '3.0'
75
+ - !ruby/object:Gem::Version
76
+ hash: 7
77
+ segments:
78
+ - 3
79
+ - 0
80
+ version: "3.0"
55
81
  type: :runtime
56
- prerelease: false
57
- version_requirements: *70327507050620
58
- - !ruby/object:Gem::Dependency
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
59
84
  name: bundler
60
- requirement: &70327507050160 !ruby/object:Gem::Requirement
85
+ prerelease: false
86
+ requirement: &id005 !ruby/object:Gem::Requirement
61
87
  none: false
62
- requirements:
88
+ requirements:
63
89
  - - ~>
64
- - !ruby/object:Gem::Version
90
+ - !ruby/object:Gem::Version
91
+ hash: 23
92
+ segments:
93
+ - 1
94
+ - 0
95
+ - 0
65
96
  version: 1.0.0
66
97
  type: :development
67
- prerelease: false
68
- version_requirements: *70327507050160
69
- - !ruby/object:Gem::Dependency
98
+ version_requirements: *id005
99
+ - !ruby/object:Gem::Dependency
70
100
  name: yajl-ruby
71
- requirement: &70327507049660 !ruby/object:Gem::Requirement
101
+ prerelease: false
102
+ requirement: &id006 !ruby/object:Gem::Requirement
72
103
  none: false
73
- requirements:
104
+ requirements:
74
105
  - - ~>
75
- - !ruby/object:Gem::Version
106
+ - !ruby/object:Gem::Version
107
+ hash: 63
108
+ segments:
109
+ - 0
110
+ - 8
111
+ - 0
76
112
  version: 0.8.0
77
113
  type: :development
78
- prerelease: false
79
- version_requirements: *70327507049660
80
- - !ruby/object:Gem::Dependency
114
+ version_requirements: *id006
115
+ - !ruby/object:Gem::Dependency
81
116
  name: turn
82
- requirement: &70327507049280 !ruby/object:Gem::Requirement
117
+ prerelease: false
118
+ requirement: &id007 !ruby/object:Gem::Requirement
83
119
  none: false
84
- requirements:
85
- - - ! '>='
86
- - !ruby/object:Gem::Version
87
- version: '0'
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ hash: 3
124
+ segments:
125
+ - 0
126
+ version: "0"
88
127
  type: :development
89
- prerelease: false
90
- version_requirements: *70327507049280
91
- - !ruby/object:Gem::Dependency
128
+ version_requirements: *id007
129
+ - !ruby/object:Gem::Dependency
92
130
  name: shoulda
93
- requirement: &70327507048800 !ruby/object:Gem::Requirement
131
+ prerelease: false
132
+ requirement: &id008 !ruby/object:Gem::Requirement
94
133
  none: false
95
- requirements:
96
- - - ! '>='
97
- - !ruby/object:Gem::Version
98
- version: '0'
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ hash: 3
138
+ segments:
139
+ - 0
140
+ version: "0"
99
141
  type: :development
100
- prerelease: false
101
- version_requirements: *70327507048800
102
- - !ruby/object:Gem::Dependency
142
+ version_requirements: *id008
143
+ - !ruby/object:Gem::Dependency
103
144
  name: mocha
104
- requirement: &70327507048380 !ruby/object:Gem::Requirement
145
+ prerelease: false
146
+ requirement: &id009 !ruby/object:Gem::Requirement
105
147
  none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ hash: 3
152
+ segments:
153
+ - 0
154
+ version: "0"
110
155
  type: :development
111
- prerelease: false
112
- version_requirements: *70327507048380
113
- - !ruby/object:Gem::Dependency
156
+ version_requirements: *id009
157
+ - !ruby/object:Gem::Dependency
114
158
  name: rdoc
115
- requirement: &70327507047960 !ruby/object:Gem::Requirement
159
+ prerelease: false
160
+ requirement: &id010 !ruby/object:Gem::Requirement
116
161
  none: false
117
- requirements:
118
- - - ! '>='
119
- - !ruby/object:Gem::Version
120
- version: '0'
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ hash: 3
166
+ segments:
167
+ - 0
168
+ version: "0"
121
169
  type: :development
122
- prerelease: false
123
- version_requirements: *70327507047960
124
- - !ruby/object:Gem::Dependency
170
+ version_requirements: *id010
171
+ - !ruby/object:Gem::Dependency
125
172
  name: sdoc
126
- requirement: &70327507047520 !ruby/object:Gem::Requirement
173
+ prerelease: false
174
+ requirement: &id011 !ruby/object:Gem::Requirement
127
175
  none: false
128
- requirements:
129
- - - ! '>='
130
- - !ruby/object:Gem::Version
131
- version: '0'
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ hash: 3
180
+ segments:
181
+ - 0
182
+ version: "0"
132
183
  type: :development
133
- prerelease: false
134
- version_requirements: *70327507047520
135
- - !ruby/object:Gem::Dependency
184
+ version_requirements: *id011
185
+ - !ruby/object:Gem::Dependency
136
186
  name: rcov
137
- requirement: &70327507037100 !ruby/object:Gem::Requirement
187
+ prerelease: false
188
+ requirement: &id012 !ruby/object:Gem::Requirement
138
189
  none: false
139
- requirements:
140
- - - ! '>='
141
- - !ruby/object:Gem::Version
142
- version: '0'
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ hash: 3
194
+ segments:
195
+ - 0
196
+ version: "0"
143
197
  type: :development
144
- prerelease: false
145
- version_requirements: *70327507037100
146
- - !ruby/object:Gem::Dependency
198
+ version_requirements: *id012
199
+ - !ruby/object:Gem::Dependency
147
200
  name: activerecord
148
- requirement: &70327507036600 !ruby/object:Gem::Requirement
201
+ prerelease: false
202
+ requirement: &id013 !ruby/object:Gem::Requirement
149
203
  none: false
150
- requirements:
204
+ requirements:
151
205
  - - ~>
152
- - !ruby/object:Gem::Version
206
+ - !ruby/object:Gem::Version
207
+ hash: 9
208
+ segments:
209
+ - 3
210
+ - 0
211
+ - 7
153
212
  version: 3.0.7
154
213
  type: :development
155
- prerelease: false
156
- version_requirements: *70327507036600
157
- - !ruby/object:Gem::Dependency
214
+ version_requirements: *id013
215
+ - !ruby/object:Gem::Dependency
158
216
  name: supermodel
159
- requirement: &70327507036180 !ruby/object:Gem::Requirement
217
+ prerelease: false
218
+ requirement: &id014 !ruby/object:Gem::Requirement
160
219
  none: false
161
- requirements:
162
- - - ! '>='
163
- - !ruby/object:Gem::Version
164
- version: '0'
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ hash: 3
224
+ segments:
225
+ - 0
226
+ version: "0"
165
227
  type: :development
166
- prerelease: false
167
- version_requirements: *70327507036180
168
- - !ruby/object:Gem::Dependency
228
+ version_requirements: *id014
229
+ - !ruby/object:Gem::Dependency
169
230
  name: sqlite3
170
- requirement: &70327507035720 !ruby/object:Gem::Requirement
231
+ prerelease: false
232
+ requirement: &id015 !ruby/object:Gem::Requirement
171
233
  none: false
172
- requirements:
173
- - - ! '>='
174
- - !ruby/object:Gem::Version
175
- version: '0'
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ hash: 3
238
+ segments:
239
+ - 0
240
+ version: "0"
176
241
  type: :development
177
- prerelease: false
178
- version_requirements: *70327507035720
179
- description: ! " Tire is a Ruby client for the ElasticSearch search engine/database.\n\n
180
- \ It provides Ruby-like API for fluent communication with the ElasticSearch server\n
181
- \ and blends with ActiveModel class for convenient usage in Rails applications.\n\n
182
- \ It allows to delete and create indices, define mapping for them, supports\n the
183
- bulk API, and presents an easy-to-use DSL for constructing your queries.\n\n It
184
- has full ActiveRecord/ActiveModel compatibility, allowing you to index\n your
185
- models (incrementally upon saving, or in bulk), searching and\n paginating the
186
- results.\n\n Please check the documentation at <http://karmi.github.com/tire/>.\n"
242
+ version_requirements: *id015
243
+ description: " Tire is a Ruby client for the ElasticSearch search engine/database.\n\n It provides Ruby-like API for fluent communication with the ElasticSearch server\n and blends with ActiveModel class for convenient usage in Rails applications.\n\n It allows to delete and create indices, define mapping for them, supports\n the bulk API, and presents an easy-to-use DSL for constructing your queries.\n\n It has full ActiveRecord/ActiveModel compatibility, allowing you to index\n your models (incrementally upon saving, or in bulk), searching and\n paginating the results.\n\n Please check the documentation at <http://karmi.github.com/tire/>.\n"
187
244
  email: karmi@karmi.cz
188
245
  executables: []
246
+
189
247
  extensions: []
190
- extra_rdoc_files:
248
+
249
+ extra_rdoc_files:
191
250
  - README.markdown
192
251
  - MIT-LICENSE
193
- files:
252
+ files:
194
253
  - .gitignore
195
254
  - .travis.yml
196
255
  - Gemfile
@@ -277,35 +336,60 @@ files:
277
336
  - test/unit/search_test.rb
278
337
  - test/unit/tire_test.rb
279
338
  - tire.gemspec
339
+ has_rdoc: true
280
340
  homepage: http://github.com/karmi/tire
281
341
  licenses: []
282
- post_install_message: ! "================================================================================\n\n
283
- \ Please check the documentation at <http://karmi.github.com/tire/>.\n\n--------------------------------------------------------------------------------\n\n
284
- \ IMPORTANT CHANGES LATELY:\n\n # Added a \"query\" facet\n\n See the full changelog
285
- at <http://github.com/karmi/tire/commits/v0.1.13.5>.\n\n--------------------------------------------------------------------------------\n"
286
- rdoc_options:
342
+
343
+ post_install_message: |
344
+ ================================================================================
345
+
346
+ Please check the documentation at <http://karmi.github.com/tire/>.
347
+
348
+ --------------------------------------------------------------------------------
349
+
350
+ IMPORTANT CHANGES LATELY:
351
+
352
+ # Added `<after/before>_update_elastic_search_index` callbacks for models
353
+ # Added percolator support for DSL and ActiveModel
354
+ # Lazy loading of ResultsCollection into memory
355
+ # Fixes for debug logging
356
+
357
+ See the full changelog at <http://github.com/karmi/tire/commits/v0.1.14>.
358
+
359
+ --------------------------------------------------------------------------------
360
+
361
+ rdoc_options:
287
362
  - --charset=UTF-8
288
- require_paths:
363
+ require_paths:
289
364
  - lib
290
- required_ruby_version: !ruby/object:Gem::Requirement
365
+ required_ruby_version: !ruby/object:Gem::Requirement
291
366
  none: false
292
- requirements:
293
- - - ! '>='
294
- - !ruby/object:Gem::Version
295
- version: '0'
296
- required_rubygems_version: !ruby/object:Gem::Requirement
367
+ requirements:
368
+ - - ">="
369
+ - !ruby/object:Gem::Version
370
+ hash: 3
371
+ segments:
372
+ - 0
373
+ version: "0"
374
+ required_rubygems_version: !ruby/object:Gem::Requirement
297
375
  none: false
298
- requirements:
299
- - - ! '>='
300
- - !ruby/object:Gem::Version
376
+ requirements:
377
+ - - ">="
378
+ - !ruby/object:Gem::Version
379
+ hash: 23
380
+ segments:
381
+ - 1
382
+ - 3
383
+ - 6
301
384
  version: 1.3.6
302
385
  requirements: []
386
+
303
387
  rubyforge_project: tire
304
- rubygems_version: 1.8.10
388
+ rubygems_version: 1.5.0
305
389
  signing_key:
306
390
  specification_version: 3
307
391
  summary: Ruby client for ElasticSearch
308
- test_files:
392
+ test_files:
309
393
  - test/fixtures/articles/1.json
310
394
  - test/fixtures/articles/2.json
311
395
  - test/fixtures/articles/3.json