tire 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -26,7 +26,7 @@ end
26
26
 
27
27
  # Generate documentation
28
28
  begin
29
- begin; require 'sdoc'; rescue LoadError; end
29
+ require 'rdoc'
30
30
  require 'rdoc/task'
31
31
  Rake::RDocTask.new do |rdoc|
32
32
  rdoc.rdoc_dir = 'rdoc'
@@ -89,6 +89,9 @@ module Tire
89
89
  block.arity < 1 ? s.instance_eval(&block) : block.call(s)
90
90
  else
91
91
  s.query { string query }
92
+ # TODO: Actualy, allow passing all the valid options from
93
+ # <http://www.elasticsearch.org/guide/reference/api/search/uri-request.html>
94
+ s.fields Array(options[:fields]) if options[:fields]
92
95
  end
93
96
 
94
97
  s.perform.results
@@ -17,13 +17,13 @@ module Tire
17
17
  def terms(field, options={})
18
18
  size = options.delete(:size) || 10
19
19
  all_terms = options.delete(:all_terms) || false
20
- @value = { :terms => { :field => field, :size => size, :all_terms => all_terms } }.update(options)
20
+ @value = { :terms => { :field => field, :size => size, :all_terms => all_terms }.update(options) }
21
21
  self
22
22
  end
23
23
 
24
24
  def date(field, options={})
25
25
  interval = options.delete(:interval) || 'day'
26
- @value = { :date_histogram => { :field => field, :interval => interval } }.update(options)
26
+ @value = { :date_histogram => { :field => field, :interval => interval }.update(options) }
27
27
  self
28
28
  end
29
29
 
data/lib/tire/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Tire
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.7"
3
3
 
4
4
  CHANGELOG =<<-END
5
5
  IMPORTANT CHANGES LATELY:
@@ -7,6 +7,7 @@ module Tire
7
7
  * Fixed a bug: `Results::Item` was referencing Ruby classes incorrectly within Rails
8
8
  * Added support for the Analyze API (#124)
9
9
  * Added support for adding multiple filters (#122)
10
-
10
+ * Fixed incorrect passing of options in the `date` and `terms` facets
11
+ * Removed SDoc since it breaks with current RDoc
11
12
  END
12
13
  end
@@ -160,8 +160,8 @@ module Tire
160
160
  setup do
161
161
  @q = 'foo AND bar'
162
162
 
163
- Tire::Search::Query.any_instance.expects(:string).with( @q ).returns(@stub)
164
- Tire::Search::Search.any_instance.expects(:perform).returns(@stub)
163
+ Tire::Search::Query.any_instance.expects(:string).at_least_once.with(@q).returns(@stub)
164
+ Tire::Search::Search.any_instance.expects(:perform).at_least_once.returns(@stub)
165
165
  end
166
166
 
167
167
  should "search for query string" do
@@ -213,6 +213,14 @@ module Tire
213
213
  ActiveModelArticle.search @q, :per_page => 10, :page => 3
214
214
  end
215
215
 
216
+ should "allow to limit returned fields" do
217
+ Tire::Search::Search.any_instance.expects(:fields).with(["id"])
218
+ ActiveModelArticle.search @q, :fields => 'id'
219
+
220
+ Tire::Search::Search.any_instance.expects(:fields).with(["id", "title"])
221
+ ActiveModelArticle.search @q, :fields => ['id', 'title']
222
+ end
223
+
216
224
  end
217
225
 
218
226
  should "not set callback when hooks are missing" do
@@ -46,6 +46,11 @@ module Tire::Search
46
46
  assert_equal true, Facet.new('foo') { terms :foo, :all_terms => true }.to_hash['foo'][:terms][:all_terms]
47
47
  end
48
48
 
49
+ should "encode custom options" do
50
+ assert_equal( { :foo => { :terms => {:field=>'bar',:size=>5,:all_terms=>false,:exclude=>['moo']} } }.to_json,
51
+ Facet.new('foo').terms(:bar, :size => 5, :exclude => ['moo']).to_json )
52
+ end
53
+
49
54
  end
50
55
 
51
56
  context "date histogram" do
@@ -60,6 +65,12 @@ module Tire::Search
60
65
  assert_equal({ :date => { :date_histogram => { :field => 'published_on', :interval => 'month' } } }.to_json, f.to_json)
61
66
  end
62
67
 
68
+ should "encode custom options" do
69
+ f = Facet.new('date') { date :published_on, :value_field => 'price' }
70
+ assert_equal( {:date=>{:date_histogram=>{:field=>'published_on',:interval=>'day',:value_field=>'price' } } }.to_json,
71
+ f.to_json )
72
+ end
73
+
63
74
  end
64
75
 
65
76
  context "range facet" do
data/tire.gemspec CHANGED
@@ -45,7 +45,6 @@ Gem::Specification.new do |s|
45
45
  # These gems are not needed for CI at <http://travis-ci.org/#!/karmi/tire>
46
46
  #
47
47
  unless ENV["CI"]
48
- s.add_development_dependency "sdoc"
49
48
  s.add_development_dependency "rdoc"
50
49
  s.add_development_dependency "rcov"
51
50
  s.add_development_dependency "turn"
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.3.6
4
+ version: 0.3.7
5
5
  prerelease:
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: 2011-10-18 00:00:00.000000000 Z
12
+ date: 2011-10-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70265158105660 !ruby/object:Gem::Requirement
16
+ requirement: &70198841382160 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.9.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70265158105660
24
+ version_requirements: *70198841382160
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rest-client
27
- requirement: &70265158105100 !ruby/object:Gem::Requirement
27
+ requirement: &70198841378280 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.6.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70265158105100
35
+ version_requirements: *70198841378280
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: multi_json
38
- requirement: &70265158104600 !ruby/object:Gem::Requirement
38
+ requirement: &70198841370400 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '1.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70265158104600
46
+ version_requirements: *70198841370400
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activemodel
49
- requirement: &70265158103940 !ruby/object:Gem::Requirement
49
+ requirement: &70198847329580 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '3.0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70265158103940
57
+ version_requirements: *70198847329580
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &70265158102840 !ruby/object:Gem::Requirement
60
+ requirement: &70198847328740 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.0.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70265158102840
68
+ version_requirements: *70198847328740
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: yajl-ruby
71
- requirement: &70265158097660 !ruby/object:Gem::Requirement
71
+ requirement: &70198847327820 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.8.0
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70265158097660
79
+ version_requirements: *70198847327820
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: shoulda
82
- requirement: &70265158097280 !ruby/object:Gem::Requirement
82
+ requirement: &70198847327040 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70265158097280
90
+ version_requirements: *70198847327040
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: mocha
93
- requirement: &70265158096780 !ruby/object:Gem::Requirement
93
+ requirement: &70198847326380 !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: *70265158096780
101
+ version_requirements: *70198847326380
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: activerecord
104
- requirement: &70265158096280 !ruby/object:Gem::Requirement
104
+ requirement: &70198847325540 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 3.0.7
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70265158096280
112
+ version_requirements: *70198847325540
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: mongoid
115
- requirement: &70265158095780 !ruby/object:Gem::Requirement
115
+ requirement: &70198847324900 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 2.2.1
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70265158095780
123
+ version_requirements: *70198847324900
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: sqlite3
126
- requirement: &70265158095380 !ruby/object:Gem::Requirement
126
+ requirement: &70198847324500 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70265158095380
134
+ version_requirements: *70198847324500
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: supermodel
137
- requirement: &70265158094900 !ruby/object:Gem::Requirement
137
+ requirement: &70198847324040 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,21 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *70265158094900
146
- - !ruby/object:Gem::Dependency
147
- name: sdoc
148
- requirement: &70265158094460 !ruby/object:Gem::Requirement
149
- none: false
150
- requirements:
151
- - - ! '>='
152
- - !ruby/object:Gem::Version
153
- version: '0'
154
- type: :development
155
- prerelease: false
156
- version_requirements: *70265158094460
145
+ version_requirements: *70198847324040
157
146
  - !ruby/object:Gem::Dependency
158
147
  name: rdoc
159
- requirement: &70265158094040 !ruby/object:Gem::Requirement
148
+ requirement: &70198847323580 !ruby/object:Gem::Requirement
160
149
  none: false
161
150
  requirements:
162
151
  - - ! '>='
@@ -164,10 +153,10 @@ dependencies:
164
153
  version: '0'
165
154
  type: :development
166
155
  prerelease: false
167
- version_requirements: *70265158094040
156
+ version_requirements: *70198847323580
168
157
  - !ruby/object:Gem::Dependency
169
158
  name: rcov
170
- requirement: &70265158093620 !ruby/object:Gem::Requirement
159
+ requirement: &70198847322960 !ruby/object:Gem::Requirement
171
160
  none: false
172
161
  requirements:
173
162
  - - ! '>='
@@ -175,10 +164,10 @@ dependencies:
175
164
  version: '0'
176
165
  type: :development
177
166
  prerelease: false
178
- version_requirements: *70265158093620
167
+ version_requirements: *70198847322960
179
168
  - !ruby/object:Gem::Dependency
180
169
  name: turn
181
- requirement: &70265158093160 !ruby/object:Gem::Requirement
170
+ requirement: &70198847312220 !ruby/object:Gem::Requirement
182
171
  none: false
183
172
  requirements:
184
173
  - - ! '>='
@@ -186,7 +175,7 @@ dependencies:
186
175
  version: '0'
187
176
  type: :development
188
177
  prerelease: false
189
- version_requirements: *70265158093160
178
+ version_requirements: *70198847312220
190
179
  description: ! " Tire is a Ruby client for the ElasticSearch search engine/database.\n\n
191
180
  \ It provides Ruby-like API for fluent communication with the ElasticSearch server\n
192
181
  \ and blends with ActiveModel class for convenient usage in Rails applications.\n\n
@@ -299,8 +288,9 @@ post_install_message: ! "=======================================================
299
288
  \ Please check the documentation at <http://karmi.github.com/tire/>.\n\n--------------------------------------------------------------------------------\n\n
300
289
  \ IMPORTANT CHANGES LATELY:\n\n * Fixed a bug: `Results::Item` was referencing
301
290
  Ruby classes incorrectly within Rails\n * Added support for the Analyze API (#124)\n
302
- \ * Added support for adding multiple filters (#122)\n\n\n See the full changelog
303
- at <http://github.com/karmi/tire/commits/v0.3.6>.\n\n--------------------------------------------------------------------------------\n"
291
+ \ * Added support for adding multiple filters (#122)\n * Fixed incorrect passing
292
+ of options in the `date` and `terms` facets\n * Removed SDoc since it breaks with
293
+ current RDoc\n\n See the full changelog at <http://github.com/karmi/tire/commits/v0.3.7>.\n\n--------------------------------------------------------------------------------\n"
304
294
  rdoc_options:
305
295
  - --charset=UTF-8
306
296
  require_paths: