elastic_queue 0.0.14 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 603750b935b0df0fa758f92f3a612ba7f5c4d416
|
4
|
+
data.tar.gz: ca508ffff29ebfb462b44912ebca6b7e959947a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f8adc215c6e5aa6b8ac0f20b5d09c2bb86c9681be1dd724de5a50efd57cb16e405dbc0ebc8b6c625c424ba3c32884c5758d0ca57bccb6543a03af2b7c0562e3
|
7
|
+
data.tar.gz: 3411f0922305b6ad239657262745edb1dde18ac194675f7b350385d2cdb6cd9891c6ef48b677a596a2574a209b0bd9bb6047f3f7b2e9553e1d0f0c498c63bb96
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
elastic_queue (0.0.
|
4
|
+
elastic_queue (0.0.13)
|
5
5
|
activerecord (~> 3.0)
|
6
6
|
activesupport (~> 3.0)
|
7
|
-
elasticsearch (~> 0
|
7
|
+
elasticsearch (~> 1.0)
|
8
8
|
will_paginate (~> 3.0)
|
9
9
|
|
10
10
|
GEM
|
@@ -31,12 +31,12 @@ GEM
|
|
31
31
|
debugger-linecache (1.2.0)
|
32
32
|
debugger-ruby_core_source (1.3.2)
|
33
33
|
diff-lcs (1.2.5)
|
34
|
-
elasticsearch (0.4
|
35
|
-
elasticsearch-api (= 0.4
|
36
|
-
elasticsearch-transport (= 0.4
|
37
|
-
elasticsearch-api (0.4
|
34
|
+
elasticsearch (1.0.4)
|
35
|
+
elasticsearch-api (= 1.0.4)
|
36
|
+
elasticsearch-transport (= 1.0.4)
|
37
|
+
elasticsearch-api (1.0.4)
|
38
38
|
multi_json
|
39
|
-
elasticsearch-transport (0.4
|
39
|
+
elasticsearch-transport (1.0.4)
|
40
40
|
faraday
|
41
41
|
multi_json
|
42
42
|
factory_girl (4.4.0)
|
data/elastic_queue.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
|
21
21
|
s.add_runtime_dependency 'activesupport', '~> 3.0'
|
22
22
|
s.add_runtime_dependency 'activerecord', '~>3.0'
|
23
|
-
s.add_runtime_dependency 'elasticsearch', '~> 0.4'
|
23
|
+
s.add_runtime_dependency 'elasticsearch', '~> 1.0.4'
|
24
24
|
s.add_runtime_dependency 'will_paginate', '~> 3.0'
|
25
25
|
s.add_development_dependency 'bundler', '~> 1.0'
|
26
26
|
s.add_development_dependency 'rspec', '~> 2.6'
|
@@ -13,7 +13,7 @@ module ElasticQueue
|
|
13
13
|
|
14
14
|
def option_to_filter(key, value)
|
15
15
|
# return and_options(value) if key == :and
|
16
|
-
if [:or, :and
|
16
|
+
if [:or, :and].include?(key)
|
17
17
|
join_options(key, value)
|
18
18
|
elsif value.is_a? Array
|
19
19
|
or_filter(key, value)
|
@@ -30,7 +30,7 @@ module ElasticQueue
|
|
30
30
|
|
31
31
|
def join_options(operator, options)
|
32
32
|
conditions = options.map { |o| options_to_filters(o) }.flatten
|
33
|
-
|
33
|
+
{ operator => conditions }
|
34
34
|
end
|
35
35
|
|
36
36
|
def or_filter(term, values)
|
@@ -41,11 +41,6 @@ describe 'ElasticQueue::Filters integration' do
|
|
41
41
|
expect(TestAnimalsQueue.query.filter(name: 'a').all.map(&:name)).to eq ['a']
|
42
42
|
end
|
43
43
|
|
44
|
-
it 'can filter out one value' do
|
45
|
-
@create_animals.call
|
46
|
-
expect(TestAnimalsQueue.query.filter(not: [ { name: 'a'} ]).all.map(&:name).sort).to eq ['b', 'c']
|
47
|
-
end
|
48
|
-
|
49
44
|
it 'can filter by a less than or greater than a time' do
|
50
45
|
@create_animals.call
|
51
46
|
expect(TestAnimalsQueue.query.filter(birthdate: { after: Date.today - 1.year - 1.day }).all.map(&:name)).to eq ['a']
|
@@ -115,41 +110,16 @@ describe 'ElasticQueue::Filters integration' do
|
|
115
110
|
# (rusty, killer, speedy) && ( rusty || lucky, killer, old bess, cock-a-doodle-doo)
|
116
111
|
name: ['rusty', 'killer', 'speedy'], #(rusty, killer, speedy) && (
|
117
112
|
or: [
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
]
|
113
|
+
and: [ # rusty ||
|
114
|
+
{ species: ['dog', 'mountain lion'] },
|
115
|
+
{ dangerous: false }
|
116
|
+
],
|
117
|
+
or: [ #speedy, killer, old bess, cock-a-doodle-doo )
|
118
|
+
{ species: ['horse', 'chicken'] },
|
119
|
+
{ dangerous: true }
|
126
120
|
]
|
121
|
+
]
|
127
122
|
}).all.map(&:name).sort).to eq ['killer', 'rusty', 'speedy']
|
128
123
|
end
|
129
|
-
|
130
|
-
it 'can nest multiple ands and ors and nots' do
|
131
|
-
Animal.create({ name: 'rusty', species: 'dog', dangerous: false })
|
132
|
-
Animal.create({ name: 'killer', species: 'mountain lion', dangerous: true })
|
133
|
-
Animal.create({ name: 'cock-a-doodle-doo', species: 'chicken', dangerous: false })
|
134
|
-
Animal.create({ name: 'old bess', species: 'cow', dangerous: true })
|
135
|
-
Animal.create({ name: 'speedy', species: 'horse', dangerous: false })
|
136
|
-
expect(TestAnimalsQueue.query.filter({
|
137
|
-
#(rusty, killer, speedy, cock-a-doodle-doo) && (! rusty && (rusty || speedy, killer, old bess, cock-a-doodle-doo))
|
138
|
-
name: ['rusty', 'killer', 'speedy', 'cock-a-doodle-doo'], #(rusty, killer, speedy, cock-a-doodle-doo) && (
|
139
|
-
not: [ # ! rusty &&
|
140
|
-
{ name: 'rusty' }
|
141
|
-
],
|
142
|
-
or: [
|
143
|
-
and: [ # (rusty ||
|
144
|
-
{ species: ['dog', 'mountain lion'] },
|
145
|
-
{ dangerous: false }
|
146
|
-
],
|
147
|
-
or: [ #speedy, killer, old bess, cock-a-doodle-doo ))
|
148
|
-
{ species: ['horse', 'chicken'] },
|
149
|
-
{ not: [ { dangerous: false } ] },
|
150
|
-
]
|
151
|
-
]
|
152
|
-
}).all.map(&:name).sort).to eq ['cock-a-doodle-doo', 'killer', 'speedy']
|
153
|
-
end
|
154
124
|
end
|
155
125
|
end
|
@@ -47,6 +47,14 @@ describe 'ElasticQueue::Sorts integration' do
|
|
47
47
|
expect(TestAnimalsQueue.query.sort(birthdate: 'asc').sort(name: 'desc').all.map(&:name)).to eq ['c', 'b', 'a']
|
48
48
|
end
|
49
49
|
|
50
|
+
it 'sorts ascending and descending on two values using hash syntax' do
|
51
|
+
Animal.create({ name: 'a', birthdate: Date.today.at_midnight - 1.year })
|
52
|
+
Animal.create({ name: 'b', birthdate: Date.today.at_midnight - 1.years })
|
53
|
+
Animal.create({ name: 'c', birthdate: Date.today.at_midnight - 3.years })
|
54
|
+
expect(TestAnimalsQueue.query.sort(birthdate: :asc, name: :asc).all.map(&:name)).to eq ['c', 'a', 'b']
|
55
|
+
expect(TestAnimalsQueue.query.sort(birthdate: :asc, name: :desc).all.map(&:name)).to eq ['c', 'b', 'a']
|
56
|
+
end
|
57
|
+
|
50
58
|
it 'doesn\'t fail to sort because of stopwords' do
|
51
59
|
Animal.create({ name: 'and' })
|
52
60
|
Animal.create({ name: 'or' })
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastic_queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruth Thompson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-07-
|
12
|
+
date: 2014-07-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
48
|
+
version: 1.0.4
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
55
|
+
version: 1.0.4
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: will_paginate
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|