tire 0.1.5 → 0.1.6
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.
- data/lib/tire/search.rb +2 -2
- data/lib/tire/search/sort.rb +4 -0
- data/lib/tire/tasks.rb +3 -2
- data/lib/tire/version.rb +1 -1
- data/test/unit/logger_test.rb +15 -4
- data/test/unit/{rubyext_hash_test.rb → rubyext_test.rb} +8 -0
- data/test/unit/search_filter_test.rb +7 -1
- data/tire.gemspec +2 -2
- metadata +9 -10
data/lib/tire/search.rb
CHANGED
@@ -22,7 +22,7 @@ module Tire
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def sort(&block)
|
25
|
-
@sort = Sort.new(&block)
|
25
|
+
@sort = Sort.new(&block).to_ary
|
26
26
|
self
|
27
27
|
end
|
28
28
|
|
@@ -91,7 +91,7 @@ module Tire
|
|
91
91
|
request.update( { :size => @size } ) if @size
|
92
92
|
request.update( { :from => @from } ) if @from
|
93
93
|
request.update( { :fields => @fields } ) if @fields
|
94
|
-
|
94
|
+
request.to_json
|
95
95
|
end
|
96
96
|
|
97
97
|
def logged(error=nil)
|
data/lib/tire/search/sort.rb
CHANGED
data/lib/tire/tasks.rb
CHANGED
@@ -52,8 +52,9 @@ namespace :tire do
|
|
52
52
|
end
|
53
53
|
|
54
54
|
unless index.exists?
|
55
|
-
|
56
|
-
|
55
|
+
mapping = defined?(Yajl) ? Yajl::Encoder.encode(klass.mapping_to_hash, :pretty => true) :
|
56
|
+
MultiJson.encode(klass.mapping_to_hash)
|
57
|
+
puts "[IMPORT] Creating index '#{index.name}' with mapping:", mapping
|
57
58
|
index.create :mappings => klass.mapping_to_hash
|
58
59
|
end
|
59
60
|
|
data/lib/tire/version.rb
CHANGED
data/test/unit/logger_test.rb
CHANGED
@@ -66,12 +66,16 @@ module Tire
|
|
66
66
|
|
67
67
|
should "log request in correct format" do
|
68
68
|
log = (<<-"log;").gsub(/^ +/, '')
|
69
|
-
# 2011-03-19 11:00:00
|
69
|
+
# 2011-03-19 11:00:00:000 [_search] (["articles", "users"])
|
70
70
|
#
|
71
71
|
curl -X GET http://...
|
72
72
|
|
73
73
|
log;
|
74
|
-
@logger.expects(:write).with
|
74
|
+
@logger.expects(:write).with do |payload|
|
75
|
+
payload =~ Regexp.new( Regexp.escape('2011-03-19 11:00:00') )
|
76
|
+
payload =~ Regexp.new( Regexp.escape('_search') )
|
77
|
+
payload =~ Regexp.new( Regexp.escape('(["articles", "users"])') )
|
78
|
+
end
|
75
79
|
@logger.log_request('_search', ["articles", "users"], 'curl -X GET http://...')
|
76
80
|
end
|
77
81
|
|
@@ -98,13 +102,20 @@ module Tire
|
|
98
102
|
}
|
99
103
|
json;
|
100
104
|
log = (<<-"log;").gsub(/^\s*/, '')
|
101
|
-
# 2011-03-19 11:00:00
|
105
|
+
# 2011-03-19 11:00:00:000 [200 OK] (4 msec)
|
102
106
|
#
|
103
107
|
log;
|
104
108
|
# log += json.split.map { |line| "# #{line}" }.join("\n")
|
105
109
|
json.each_line { |line| log += "# #{line}" }
|
106
110
|
log += "\n\n"
|
107
|
-
@logger.expects(:write).with
|
111
|
+
@logger.expects(:write).with do |payload|
|
112
|
+
payload =~ Regexp.new( Regexp.escape('2011-03-19 11:00:00') )
|
113
|
+
payload =~ Regexp.new( Regexp.escape('[200 OK]') )
|
114
|
+
payload =~ Regexp.new( Regexp.escape('(4 msec)') )
|
115
|
+
payload =~ Regexp.new( Regexp.escape('took') )
|
116
|
+
payload =~ Regexp.new( Regexp.escape('hits') )
|
117
|
+
payload =~ Regexp.new( Regexp.escape('_score') )
|
118
|
+
end
|
108
119
|
@logger.log_response('200 OK', 4, json)
|
109
120
|
end
|
110
121
|
|
@@ -24,12 +24,18 @@ module Tire::Search
|
|
24
24
|
Filter.new('geo_distance', { :distance => '12km', :location => [40, -70] }).to_json )
|
25
25
|
end
|
26
26
|
|
27
|
-
should "encode 'or' filter
|
27
|
+
should "encode 'or' filter with multiple other filters" do
|
28
28
|
# See http://www.elasticsearch.org/guide/reference/query-dsl/or-filter.html
|
29
29
|
assert_equal( { :or => [ {:terms => {:tags => ['foo']}}, {:terms => {:tags => ['bar']}} ] }.to_json,
|
30
30
|
Filter.new('or', {:terms => {:tags => ['foo']}}, {:terms => {:tags => ['bar']}}).to_json )
|
31
31
|
end
|
32
32
|
|
33
|
+
should "encode 'bool' filter with multiple filters" do
|
34
|
+
# http://www.elasticsearch.org/guide/reference/query-dsl/bool-filter.html
|
35
|
+
assert_equal( { :bool => [ {:must => {:terms => {:tags => ['foo']}}}, {:should => {:terms => {:tags => ['bar']}}} ] }.to_json,
|
36
|
+
Filter.new('bool', {:must => {:terms => {:tags => ['foo']}}}, { :should => {:terms => {:tags => ['bar']}}}).to_json )
|
37
|
+
end
|
38
|
+
|
33
39
|
end
|
34
40
|
|
35
41
|
end
|
data/tire.gemspec
CHANGED
@@ -24,11 +24,11 @@ Gem::Specification.new do |s|
|
|
24
24
|
|
25
25
|
s.required_rubygems_version = ">= 1.3.6"
|
26
26
|
|
27
|
-
s.add_dependency "rake", "
|
27
|
+
s.add_dependency "rake", ">= 0.8.0"
|
28
28
|
s.add_dependency "bundler", "~> 1.0.0"
|
29
29
|
s.add_dependency "rest-client", "~> 1.6.0"
|
30
30
|
s.add_dependency "multi_json", "~> 1.0"
|
31
|
-
s.add_dependency "activemodel", "~> 3.0
|
31
|
+
s.add_dependency "activemodel", "~> 3.0"
|
32
32
|
|
33
33
|
s.add_development_dependency "yajl-ruby", "~> 0.8.0"
|
34
34
|
s.add_development_dependency "turn"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 6
|
10
|
+
version: 0.1.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Karel Minarik
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-06-
|
18
|
+
date: 2011-06-06 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
hash: 63
|
30
30
|
segments:
|
@@ -89,12 +89,11 @@ dependencies:
|
|
89
89
|
requirements:
|
90
90
|
- - ~>
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
hash:
|
92
|
+
hash: 7
|
93
93
|
segments:
|
94
94
|
- 3
|
95
95
|
- 0
|
96
|
-
|
97
|
-
version: 3.0.7
|
96
|
+
version: "3.0"
|
98
97
|
type: :runtime
|
99
98
|
version_requirements: *id005
|
100
99
|
- !ruby/object:Gem::Dependency
|
@@ -312,7 +311,7 @@ files:
|
|
312
311
|
- test/unit/model_search_test.rb
|
313
312
|
- test/unit/results_collection_test.rb
|
314
313
|
- test/unit/results_item_test.rb
|
315
|
-
- test/unit/
|
314
|
+
- test/unit/rubyext_test.rb
|
316
315
|
- test/unit/search_facet_test.rb
|
317
316
|
- test/unit/search_filter_test.rb
|
318
317
|
- test/unit/search_highlight_test.rb
|
@@ -396,7 +395,7 @@ test_files:
|
|
396
395
|
- test/unit/model_search_test.rb
|
397
396
|
- test/unit/results_collection_test.rb
|
398
397
|
- test/unit/results_item_test.rb
|
399
|
-
- test/unit/
|
398
|
+
- test/unit/rubyext_test.rb
|
400
399
|
- test/unit/search_facet_test.rb
|
401
400
|
- test/unit/search_filter_test.rb
|
402
401
|
- test/unit/search_highlight_test.rb
|