tire 0.1.16 → 0.2.0

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.
@@ -6,74 +6,41 @@ module Tire::Search
6
6
 
7
7
  context "Sort" do
8
8
 
9
- context "with the old interface" do
10
-
11
- should "encode simple strings" do
12
- assert_equal [:foo].to_json, Sort.new.foo.to_json
13
- end
14
-
15
- should "encode method arguments" do
16
- assert_equal [:foo => 'desc'].to_json, Sort.new.foo('desc').to_json
17
- end
18
-
19
- should "encode hash" do
20
- assert_equal [ :foo => { :reverse => true } ].to_json, Sort.new.foo(:reverse => true).to_json
21
- end
22
-
23
- should "encode multiple sort fields" do
24
- assert_equal [:foo, :bar].to_json, Sort.new.foo.bar.to_json
25
- end
26
-
27
- should "encode fields when passed as a block to constructor with deprecated interface" do
28
- s = Sort.new do
29
- foo
30
- bar 'desc'
31
- _score
32
- end
33
- assert_equal [ :foo, {:bar => 'desc'}, :_score ].to_json, s.to_json
34
- end
35
-
9
+ should "be serialized to JSON" do
10
+ assert_respond_to Sort.new, :to_json
36
11
  end
37
12
 
38
- context "with the new interface" do
39
-
40
- should "be serialized to JSON" do
41
- assert_respond_to Sort.new, :to_json
42
- end
43
-
44
- should "encode simple strings" do
45
- assert_equal [:foo].to_json, Sort.new.by(:foo).to_json
46
- end
13
+ should "encode simple strings" do
14
+ assert_equal [:foo].to_json, Sort.new.by(:foo).to_json
15
+ end
47
16
 
48
- should "encode method arguments" do
49
- assert_equal [:foo => 'desc'].to_json, Sort.new.by(:foo, 'desc').to_json
50
- end
17
+ should "encode method arguments" do
18
+ assert_equal [:foo => 'desc'].to_json, Sort.new.by(:foo, 'desc').to_json
19
+ end
51
20
 
52
- should "encode hash" do
53
- assert_equal [ :foo => { :reverse => true } ].to_json, Sort.new.by(:foo, :reverse => true).to_json
54
- end
21
+ should "encode hash" do
22
+ assert_equal [ :foo => { :reverse => true } ].to_json, Sort.new.by(:foo, :reverse => true).to_json
23
+ end
55
24
 
56
- should "encode multiple sort fields in chain" do
57
- assert_equal [:foo, :bar].to_json, Sort.new.by(:foo).by(:bar).to_json
58
- end
25
+ should "encode multiple sort fields in chain" do
26
+ assert_equal [:foo, :bar].to_json, Sort.new.by(:foo).by(:bar).to_json
27
+ end
59
28
 
60
- should "encode fields when passed as a block to constructor" do
61
- s = Sort.new do
62
- by :foo
63
- by :bar, 'desc'
64
- by :_score
65
- end
66
- assert_equal [ :foo, {:bar => 'desc'}, :_score ].to_json, s.to_json
29
+ should "encode fields when passed as a block to constructor" do
30
+ s = Sort.new do
31
+ by :foo
32
+ by :bar, 'desc'
33
+ by :_score
67
34
  end
35
+ assert_equal [ :foo, {:bar => 'desc'}, :_score ].to_json, s.to_json
36
+ end
68
37
 
69
- should "encode fields deeper in json" do
70
- s = Sort.new { by 'author.name' }
71
- assert_equal [ 'author.name' ].to_json, s.to_json
72
-
73
- s = Sort.new { by 'author.name', 'desc' }
74
- assert_equal [ {'author.name' => 'desc'} ].to_json, s.to_json
75
- end
38
+ should "encode fields deeper in json" do
39
+ s = Sort.new { by 'author.name' }
40
+ assert_equal [ 'author.name' ].to_json, s.to_json
76
41
 
42
+ s = Sort.new { by 'author.name', 'desc' }
43
+ assert_equal [ {'author.name' => 'desc'} ].to_json, s.to_json
77
44
  end
78
45
 
79
46
  end
@@ -254,7 +254,23 @@ module Tire
254
254
  fields :title
255
255
  end
256
256
  hash = MultiJson.decode( s.to_json )
257
- assert_equal 'title', hash['fields']
257
+ assert_equal ['title'], hash['fields']
258
+ end
259
+
260
+ should "take multiple fields as an Array" do
261
+ s = Search::Search.new('index') do
262
+ fields [:title, :tags]
263
+ end
264
+ hash = MultiJson.decode( s.to_json )
265
+ assert_equal ['title', 'tags'], hash['fields']
266
+ end
267
+
268
+ should "take multiple fields as splat argument" do
269
+ s = Search::Search.new('index') do
270
+ fields :title, :tags
271
+ end
272
+ hash = MultiJson.decode( s.to_json )
273
+ assert_equal ['title', 'tags'], hash['fields']
258
274
  end
259
275
 
260
276
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tire
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
- - 1
9
- - 16
10
- version: 0.1.16
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - Karel Minarik
@@ -15,17 +14,16 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-07-14 00:00:00 Z
17
+ date: 2011-08-21 00:00:00 +02:00
18
+ default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rake
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
24
  requirements:
26
25
  - - ">="
27
26
  - !ruby/object:Gem::Version
28
- hash: 63
29
27
  segments:
30
28
  - 0
31
29
  - 8
@@ -37,11 +35,9 @@ dependencies:
37
35
  name: rest-client
38
36
  prerelease: false
39
37
  requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
38
  requirements:
42
39
  - - ~>
43
40
  - !ruby/object:Gem::Version
44
- hash: 15
45
41
  segments:
46
42
  - 1
47
43
  - 6
@@ -53,11 +49,9 @@ dependencies:
53
49
  name: multi_json
54
50
  prerelease: false
55
51
  requirement: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
52
  requirements:
58
53
  - - ~>
59
54
  - !ruby/object:Gem::Version
60
- hash: 15
61
55
  segments:
62
56
  - 1
63
57
  - 0
@@ -68,11 +62,9 @@ dependencies:
68
62
  name: activemodel
69
63
  prerelease: false
70
64
  requirement: &id004 !ruby/object:Gem::Requirement
71
- none: false
72
65
  requirements:
73
66
  - - ~>
74
67
  - !ruby/object:Gem::Version
75
- hash: 7
76
68
  segments:
77
69
  - 3
78
70
  - 0
@@ -83,11 +75,9 @@ dependencies:
83
75
  name: bundler
84
76
  prerelease: false
85
77
  requirement: &id005 !ruby/object:Gem::Requirement
86
- none: false
87
78
  requirements:
88
79
  - - ~>
89
80
  - !ruby/object:Gem::Version
90
- hash: 23
91
81
  segments:
92
82
  - 1
93
83
  - 0
@@ -99,11 +89,9 @@ dependencies:
99
89
  name: yajl-ruby
100
90
  prerelease: false
101
91
  requirement: &id006 !ruby/object:Gem::Requirement
102
- none: false
103
92
  requirements:
104
93
  - - ~>
105
94
  - !ruby/object:Gem::Version
106
- hash: 63
107
95
  segments:
108
96
  - 0
109
97
  - 8
@@ -115,11 +103,9 @@ dependencies:
115
103
  name: turn
116
104
  prerelease: false
117
105
  requirement: &id007 !ruby/object:Gem::Requirement
118
- none: false
119
106
  requirements:
120
107
  - - ">="
121
108
  - !ruby/object:Gem::Version
122
- hash: 3
123
109
  segments:
124
110
  - 0
125
111
  version: "0"
@@ -129,11 +115,9 @@ dependencies:
129
115
  name: shoulda
130
116
  prerelease: false
131
117
  requirement: &id008 !ruby/object:Gem::Requirement
132
- none: false
133
118
  requirements:
134
119
  - - ">="
135
120
  - !ruby/object:Gem::Version
136
- hash: 3
137
121
  segments:
138
122
  - 0
139
123
  version: "0"
@@ -143,11 +127,9 @@ dependencies:
143
127
  name: mocha
144
128
  prerelease: false
145
129
  requirement: &id009 !ruby/object:Gem::Requirement
146
- none: false
147
130
  requirements:
148
131
  - - ">="
149
132
  - !ruby/object:Gem::Version
150
- hash: 3
151
133
  segments:
152
134
  - 0
153
135
  version: "0"
@@ -157,11 +139,9 @@ dependencies:
157
139
  name: rdoc
158
140
  prerelease: false
159
141
  requirement: &id010 !ruby/object:Gem::Requirement
160
- none: false
161
142
  requirements:
162
143
  - - ">="
163
144
  - !ruby/object:Gem::Version
164
- hash: 3
165
145
  segments:
166
146
  - 0
167
147
  version: "0"
@@ -171,11 +151,9 @@ dependencies:
171
151
  name: sdoc
172
152
  prerelease: false
173
153
  requirement: &id011 !ruby/object:Gem::Requirement
174
- none: false
175
154
  requirements:
176
155
  - - ">="
177
156
  - !ruby/object:Gem::Version
178
- hash: 3
179
157
  segments:
180
158
  - 0
181
159
  version: "0"
@@ -185,11 +163,9 @@ dependencies:
185
163
  name: rcov
186
164
  prerelease: false
187
165
  requirement: &id012 !ruby/object:Gem::Requirement
188
- none: false
189
166
  requirements:
190
167
  - - ">="
191
168
  - !ruby/object:Gem::Version
192
- hash: 3
193
169
  segments:
194
170
  - 0
195
171
  version: "0"
@@ -199,11 +175,9 @@ dependencies:
199
175
  name: activerecord
200
176
  prerelease: false
201
177
  requirement: &id013 !ruby/object:Gem::Requirement
202
- none: false
203
178
  requirements:
204
179
  - - ~>
205
180
  - !ruby/object:Gem::Version
206
- hash: 9
207
181
  segments:
208
182
  - 3
209
183
  - 0
@@ -215,11 +189,9 @@ dependencies:
215
189
  name: supermodel
216
190
  prerelease: false
217
191
  requirement: &id014 !ruby/object:Gem::Requirement
218
- none: false
219
192
  requirements:
220
193
  - - ">="
221
194
  - !ruby/object:Gem::Version
222
- hash: 3
223
195
  segments:
224
196
  - 0
225
197
  version: "0"
@@ -229,11 +201,9 @@ dependencies:
229
201
  name: sqlite3
230
202
  prerelease: false
231
203
  requirement: &id015 !ruby/object:Gem::Requirement
232
- none: false
233
204
  requirements:
234
205
  - - ">="
235
206
  - !ruby/object:Gem::Version
236
- hash: 3
237
207
  segments:
238
208
  - 0
239
209
  version: "0"
@@ -307,7 +277,7 @@ files:
307
277
  - test/models/active_model_article.rb
308
278
  - test/models/active_model_article_with_callbacks.rb
309
279
  - test/models/active_model_article_with_custom_index_name.rb
310
- - test/models/active_record_article.rb
280
+ - test/models/active_record_models.rb
311
281
  - test/models/article.rb
312
282
  - test/models/persistent_article.rb
313
283
  - test/models/persistent_articles_with_custom_index_name.rb
@@ -334,6 +304,7 @@ files:
334
304
  - test/unit/search_test.rb
335
305
  - test/unit/tire_test.rb
336
306
  - tire.gemspec
307
+ has_rdoc: true
337
308
  homepage: http://github.com/karmi/tire
338
309
  licenses: []
339
310
 
@@ -346,13 +317,13 @@ post_install_message: |
346
317
 
347
318
  IMPORTANT CHANGES LATELY:
348
319
 
349
- # Defined mapping for nested fields [#56]
350
- # Mapping type is optional and defaults to "string"
351
- # Fixed handling of fields returned prefixed by _source from ES [#31]
352
- # Allow passing the type to search and added that model passes `document_type` to search [@jonkarna, #38]
353
- # Allow leaving index name empty for searching the whole server
320
+ # By default, results are wrapped in Item class (05a1331)
321
+ # Completely rewritten ActiveModel/ActiveRecord support
322
+ # Added method to items for loading the "real" model from database (f9273bc)
323
+ # Added the ':load' option to eagerly load results from database (1e34cde)
324
+ # Deprecated the dynamic sort methods, use the 'sort { by :field_name }' syntax
354
325
 
355
- See the full changelog at <http://github.com/karmi/tire/commits/v0.1.16>.
326
+ See the full changelog at <http://github.com/karmi/tire/commits/v0.2.0>.
356
327
 
357
328
  --------------------------------------------------------------------------------
358
329
 
@@ -361,20 +332,16 @@ rdoc_options:
361
332
  require_paths:
362
333
  - lib
363
334
  required_ruby_version: !ruby/object:Gem::Requirement
364
- none: false
365
335
  requirements:
366
336
  - - ">="
367
337
  - !ruby/object:Gem::Version
368
- hash: 3
369
338
  segments:
370
339
  - 0
371
340
  version: "0"
372
341
  required_rubygems_version: !ruby/object:Gem::Requirement
373
- none: false
374
342
  requirements:
375
343
  - - ">="
376
344
  - !ruby/object:Gem::Version
377
- hash: 23
378
345
  segments:
379
346
  - 1
380
347
  - 3
@@ -383,7 +350,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
383
350
  requirements: []
384
351
 
385
352
  rubyforge_project: tire
386
- rubygems_version: 1.8.5
353
+ rubygems_version: 1.3.6
387
354
  signing_key:
388
355
  specification_version: 3
389
356
  summary: Ruby client for ElasticSearch
@@ -409,7 +376,7 @@ test_files:
409
376
  - test/models/active_model_article.rb
410
377
  - test/models/active_model_article_with_callbacks.rb
411
378
  - test/models/active_model_article_with_custom_index_name.rb
412
- - test/models/active_record_article.rb
379
+ - test/models/active_record_models.rb
413
380
  - test/models/article.rb
414
381
  - test/models/persistent_article.rb
415
382
  - test/models/persistent_articles_with_custom_index_name.rb
@@ -1,12 +0,0 @@
1
- require 'rubygems'
2
- require 'active_record'
3
-
4
- class ActiveRecordArticle < ActiveRecord::Base
5
- include Tire::Model::Search
6
- include Tire::Model::Callbacks
7
-
8
- mapping do
9
- indexes :title, :type => 'string', :boost => 10, :analyzer => 'snowball'
10
- indexes :created_at, :type => 'date'
11
- end
12
- end