tire 0.4.0.pre → 0.4.0.rc

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.
Files changed (46) hide show
  1. data/README.markdown +6 -10
  2. data/examples/rails-application-template.rb +6 -6
  3. data/examples/tire-dsl.rb +10 -9
  4. data/lib/tire.rb +8 -0
  5. data/lib/tire/dsl.rb +7 -6
  6. data/lib/tire/index.rb +22 -12
  7. data/lib/tire/model/import.rb +3 -2
  8. data/lib/tire/model/indexing.rb +21 -13
  9. data/lib/tire/model/naming.rb +2 -1
  10. data/lib/tire/model/persistence.rb +1 -1
  11. data/lib/tire/results/collection.rb +20 -17
  12. data/lib/tire/results/item.rb +1 -1
  13. data/lib/tire/rubyext/ruby_1_8.rb +7 -0
  14. data/lib/tire/search.rb +33 -19
  15. data/lib/tire/search/facet.rb +5 -0
  16. data/lib/tire/search/query.rb +8 -3
  17. data/lib/tire/tasks.rb +47 -14
  18. data/lib/tire/utils.rb +17 -0
  19. data/lib/tire/version.rb +13 -2
  20. data/test/integration/active_model_indexing_test.rb +1 -0
  21. data/test/integration/active_model_searchable_test.rb +7 -5
  22. data/test/integration/active_record_searchable_test.rb +159 -72
  23. data/test/integration/count_test.rb +34 -0
  24. data/test/integration/dsl_search_test.rb +22 -0
  25. data/test/integration/explanation_test.rb +44 -0
  26. data/test/integration/facets_test.rb +15 -0
  27. data/test/integration/fuzzy_queries_test.rb +20 -0
  28. data/test/integration/mongoid_searchable_test.rb +1 -0
  29. data/test/integration/persistent_model_test.rb +22 -1
  30. data/test/integration/text_query_test.rb +17 -3
  31. data/test/models/active_record_models.rb +43 -1
  32. data/test/models/mongoid_models.rb +0 -1
  33. data/test/models/persistent_article_in_namespace.rb +12 -0
  34. data/test/models/supermodel_article.rb +5 -10
  35. data/test/test_helper.rb +16 -2
  36. data/test/unit/index_test.rb +90 -16
  37. data/test/unit/model_import_test.rb +4 -4
  38. data/test/unit/model_search_test.rb +13 -10
  39. data/test/unit/results_collection_test.rb +6 -0
  40. data/test/unit/results_item_test.rb +8 -0
  41. data/test/unit/search_facet_test.rb +9 -0
  42. data/test/unit/search_query_test.rb +36 -7
  43. data/test/unit/search_test.rb +70 -1
  44. data/test/unit/tire_test.rb +23 -12
  45. data/tire.gemspec +11 -8
  46. metadata +90 -48
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tire
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0.pre
4
+ version: 0.4.0.rc
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-13 00:00:00.000000000 Z
12
+ date: 2012-03-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70178931888260 !ruby/object:Gem::Requirement
16
+ requirement: &70284800265540 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70178931888260
24
+ version_requirements: *70284800265540
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rest-client
27
- requirement: &70178931886960 !ruby/object:Gem::Requirement
27
+ requirement: &70284800278180 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,54 +32,54 @@ dependencies:
32
32
  version: 1.6.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70178931886960
35
+ version_requirements: *70284800278180
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: multi_json
38
- requirement: &70178931896160 !ruby/object:Gem::Requirement
38
+ requirement: &70284800277320 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
42
42
  - !ruby/object:Gem::Version
43
- version: '1.0'
43
+ version: '1.1'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70178931896160
46
+ version_requirements: *70284800277320
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activemodel
49
- requirement: &70178931895180 !ruby/object:Gem::Requirement
49
+ requirement: &70284800276320 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
- - - ~>
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70178931895180
57
+ version_requirements: *70284800276320
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: hashr
60
- requirement: &70178931893720 !ruby/object:Gem::Requirement
60
+ requirement: &70284800275340 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
64
64
  - !ruby/object:Gem::Version
65
- version: 0.0.16
65
+ version: 0.0.19
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70178931893720
68
+ version_requirements: *70284800275340
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
- requirement: &70178931892600 !ruby/object:Gem::Requirement
71
+ requirement: &70284800274440 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
- - - ~>
74
+ - - ! '>='
75
75
  - !ruby/object:Gem::Version
76
- version: '1.0'
76
+ version: '1.1'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70178931892600
79
+ version_requirements: *70284800274440
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: yajl-ruby
82
- requirement: &70178931892080 !ruby/object:Gem::Requirement
82
+ requirement: &70284800272140 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 0.8.0
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70178931892080
90
+ version_requirements: *70284800272140
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: shoulda
93
- requirement: &70178931907820 !ruby/object:Gem::Requirement
93
+ requirement: &70284800297420 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70178931907820
101
+ version_requirements: *70284800297420
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: mocha
104
- requirement: &70178931905960 !ruby/object:Gem::Requirement
104
+ requirement: &70284800296460 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,21 +109,32 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70178931905960
112
+ version_requirements: *70284800296460
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: activerecord
115
- requirement: &70178931903200 !ruby/object:Gem::Requirement
115
+ requirement: &70284800294820 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
- - - ~>
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '3.0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *70284800294820
124
+ - !ruby/object:Gem::Dependency
125
+ name: sqlite3
126
+ requirement: &70284800293320 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
119
130
  - !ruby/object:Gem::Version
120
- version: '3'
131
+ version: '0'
121
132
  type: :development
122
133
  prerelease: false
123
- version_requirements: *70178931903200
134
+ version_requirements: *70284800293320
124
135
  - !ruby/object:Gem::Dependency
125
136
  name: mongoid
126
- requirement: &70178931901820 !ruby/object:Gem::Requirement
137
+ requirement: &70284800291560 !ruby/object:Gem::Requirement
127
138
  none: false
128
139
  requirements:
129
140
  - - ~>
@@ -131,10 +142,10 @@ dependencies:
131
142
  version: 2.2.1
132
143
  type: :development
133
144
  prerelease: false
134
- version_requirements: *70178931901820
145
+ version_requirements: *70284800291560
135
146
  - !ruby/object:Gem::Dependency
136
- name: sqlite3
137
- requirement: &70178931925640 !ruby/object:Gem::Requirement
147
+ name: bson_ext
148
+ requirement: &70284800315960 !ruby/object:Gem::Requirement
138
149
  none: false
139
150
  requirements:
140
151
  - - ! '>='
@@ -142,21 +153,32 @@ dependencies:
142
153
  version: '0'
143
154
  type: :development
144
155
  prerelease: false
145
- version_requirements: *70178931925640
156
+ version_requirements: *70284800315960
146
157
  - !ruby/object:Gem::Dependency
147
- name: supermodel
148
- requirement: &70178931923640 !ruby/object:Gem::Requirement
158
+ name: redis-persistence
159
+ requirement: &70284800314940 !ruby/object:Gem::Requirement
149
160
  none: false
150
161
  requirements:
151
- - - ~>
162
+ - - ! '>='
152
163
  - !ruby/object:Gem::Version
153
- version: 0.1.6
164
+ version: '0'
154
165
  type: :development
155
166
  prerelease: false
156
- version_requirements: *70178931923640
167
+ version_requirements: *70284800314940
157
168
  - !ruby/object:Gem::Dependency
158
169
  name: curb
159
- requirement: &70178931922360 !ruby/object:Gem::Requirement
170
+ requirement: &70284800314280 !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ! '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: *70284800314280
179
+ - !ruby/object:Gem::Dependency
180
+ name: minitest
181
+ requirement: &70284800312440 !ruby/object:Gem::Requirement
160
182
  none: false
161
183
  requirements:
162
184
  - - ! '>='
@@ -164,10 +186,10 @@ dependencies:
164
186
  version: '0'
165
187
  type: :development
166
188
  prerelease: false
167
- version_requirements: *70178931922360
189
+ version_requirements: *70284800312440
168
190
  - !ruby/object:Gem::Dependency
169
191
  name: rdoc
170
- requirement: &70178931921460 !ruby/object:Gem::Requirement
192
+ requirement: &70284800309960 !ruby/object:Gem::Requirement
171
193
  none: false
172
194
  requirements:
173
195
  - - ! '>='
@@ -175,10 +197,10 @@ dependencies:
175
197
  version: '0'
176
198
  type: :development
177
199
  prerelease: false
178
- version_requirements: *70178931921460
200
+ version_requirements: *70284800309960
179
201
  - !ruby/object:Gem::Dependency
180
202
  name: turn
181
- requirement: &70178931920700 !ruby/object:Gem::Requirement
203
+ requirement: &70284800323060 !ruby/object:Gem::Requirement
182
204
  none: false
183
205
  requirements:
184
206
  - - ~>
@@ -186,7 +208,7 @@ dependencies:
186
208
  version: '0.9'
187
209
  type: :development
188
210
  prerelease: false
189
- version_requirements: *70178931920700
211
+ version_requirements: *70284800323060
190
212
  description: ! " Tire is a Ruby client for the ElasticSearch search engine/database.\n\n
191
213
  \ It provides Ruby-like API for fluent communication with the ElasticSearch server\n
192
214
  \ and blends with ActiveModel class for convenient usage in Rails applications.\n\n
@@ -232,6 +254,7 @@ files:
232
254
  - lib/tire/results/item.rb
233
255
  - lib/tire/results/pagination.rb
234
256
  - lib/tire/rubyext/hash.rb
257
+ - lib/tire/rubyext/ruby_1_8.rb
235
258
  - lib/tire/rubyext/symbol.rb
236
259
  - lib/tire/search.rb
237
260
  - lib/tire/search/facet.rb
@@ -240,6 +263,7 @@ files:
240
263
  - lib/tire/search/query.rb
241
264
  - lib/tire/search/sort.rb
242
265
  - lib/tire/tasks.rb
266
+ - lib/tire/utils.rb
243
267
  - lib/tire/version.rb
244
268
  - test/fixtures/articles/1.json
245
269
  - test/fixtures/articles/2.json
@@ -250,10 +274,14 @@ files:
250
274
  - test/integration/active_model_searchable_test.rb
251
275
  - test/integration/active_record_searchable_test.rb
252
276
  - test/integration/boolean_queries_test.rb
277
+ - test/integration/count_test.rb
253
278
  - test/integration/custom_score_queries_test.rb
279
+ - test/integration/dsl_search_test.rb
280
+ - test/integration/explanation_test.rb
254
281
  - test/integration/facets_test.rb
255
282
  - test/integration/filtered_queries_test.rb
256
283
  - test/integration/filters_test.rb
284
+ - test/integration/fuzzy_queries_test.rb
257
285
  - test/integration/highlight_test.rb
258
286
  - test/integration/index_mapping_test.rb
259
287
  - test/integration/index_store_test.rb
@@ -274,6 +302,7 @@ files:
274
302
  - test/models/article.rb
275
303
  - test/models/mongoid_models.rb
276
304
  - test/models/persistent_article.rb
305
+ - test/models/persistent_article_in_namespace.rb
277
306
  - test/models/persistent_article_with_casting.rb
278
307
  - test/models/persistent_article_with_defaults.rb
279
308
  - test/models/persistent_articles_with_custom_index_name.rb
@@ -309,10 +338,18 @@ post_install_message: ! "=======================================================
309
338
  model properties as Ruby objects in Tire::Model::Persistence\n * Added Hashr (http://rubygems.org/gems/hashr)
310
339
  as dependency\n * Changed that search in persistence returns instances of model
311
340
  not Item\n * Fixed errors in the Curb client\n * Re-raise the RestClient::RequestTimeout
312
- and RestClient::ServerBrokeConnection exceptions\n * Added the `:as` option for
313
- model mapping to dynamically set property value in serialization\n * Prefer ELASTICSEARCH_URL
341
+ and RestClient::ServerBrokeConnection exceptions\n * Index#bulk_store and Index#import
342
+ support the `:raise` option to re-raise exceptions\n * Prefer ELASTICSEARCH_URL
314
343
  environment variable as the default URL, if present\n * Added the \"text\" search
315
- query\n\n See the full changelog at <http://github.com/karmi/tire/commits/v0.4.0.pre>.\n\n--------------------------------------------------------------------------------\n"
344
+ query\n * Deprecated the support for passing JSON strings to `Index#store`\n *
345
+ ActiveModel mapping has the `:as` option dynamically set property value for serialization\n
346
+ \ * ActiveModel supports any level of mappings in `mapping`\n * ActiveModel integration
347
+ now can eagerly load records of multiple types/classes\n * ActiveModel integration
348
+ now properly supports namespaced models\n * Added support for passing search params
349
+ (`search_type`, `timeout`, etc.) to search requests\n * Added the \"tire:index:drop\"
350
+ Rake task\n * Added the \"Filter Facets\" support\n * Added the \"Fuzzy\" search
351
+ query type\n * Test suite refactorings and changes\n * Relaxed gem dependencies\n\n
352
+ \ See the full changelog at <http://github.com/karmi/tire/commits/v0.4.0.rc>.\n\n--------------------------------------------------------------------------------\n"
316
353
  rdoc_options:
317
354
  - --charset=UTF-8
318
355
  require_paths:
@@ -345,10 +382,14 @@ test_files:
345
382
  - test/integration/active_model_searchable_test.rb
346
383
  - test/integration/active_record_searchable_test.rb
347
384
  - test/integration/boolean_queries_test.rb
385
+ - test/integration/count_test.rb
348
386
  - test/integration/custom_score_queries_test.rb
387
+ - test/integration/dsl_search_test.rb
388
+ - test/integration/explanation_test.rb
349
389
  - test/integration/facets_test.rb
350
390
  - test/integration/filtered_queries_test.rb
351
391
  - test/integration/filters_test.rb
392
+ - test/integration/fuzzy_queries_test.rb
352
393
  - test/integration/highlight_test.rb
353
394
  - test/integration/index_mapping_test.rb
354
395
  - test/integration/index_store_test.rb
@@ -369,6 +410,7 @@ test_files:
369
410
  - test/models/article.rb
370
411
  - test/models/mongoid_models.rb
371
412
  - test/models/persistent_article.rb
413
+ - test/models/persistent_article_in_namespace.rb
372
414
  - test/models/persistent_article_with_casting.rb
373
415
  - test/models/persistent_article_with_defaults.rb
374
416
  - test/models/persistent_articles_with_custom_index_name.rb