elastic_queue 0.0.9 → 0.0.10

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: 27b8c7f2b618f63f8ee1d27fbbddcfe01962203a
4
- data.tar.gz: 09eb104fe8598fc18ad91c5fd5e6a60833f9d1a6
3
+ metadata.gz: 3b98fbf9af561bf1f2bdaf418941c235e9efb6d5
4
+ data.tar.gz: 2a2b8517d4cdb107ad9fdb55ace575741ee5854f
5
5
  SHA512:
6
- metadata.gz: 0662d2a579e6a734edc8d5cab8524010210d990ffc8511c5d3740526d41a165d981d75cfa8027fe2a3f6d5d5c0734b986977b90d9d5f201b9f4e4a1112a5f9b9
7
- data.tar.gz: 1e5bdd59638781425484331f2463f22604303693b953e5413df09fe23c6612b3619ea0b190830f736a129ad7b9b3301813649e5971995803397abe3ff5e1cd67
6
+ metadata.gz: 6ebcfd62bf72d135e4fa2532d61237996698a8974b99cf2bdfb9293a6705c0f52dc23af9aa6b2e6e46f861d49a711699c5c9b753b9b96c45c72e2c6c5ddcb035
7
+ data.tar.gz: e7a20b9650fbd4e411e6449d8373a32416c9a9af9257aeec5caa16827a4faa16985d072d132ba7e5be25893a5d104debace1d5385e2fbf7d684961116b4e59f8
data/Gemfile.lock CHANGED
@@ -1,56 +1,52 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- elastic-queue (0.0.2)
5
- activesupport
6
- elasticsearch
4
+ elastic_queue (0.0.10)
5
+ activesupport (~> 3.0)
6
+ elasticsearch (~> 0.4)
7
+ will_paginate (~> 3.0)
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
10
11
  specs:
11
- activesupport (4.0.1)
12
+ activesupport (3.2.17)
12
13
  i18n (~> 0.6, >= 0.6.4)
13
- minitest (~> 4.2)
14
- multi_json (~> 1.3)
15
- thread_safe (~> 0.1)
16
- tzinfo (~> 0.3.37)
17
- atomic (1.1.14)
14
+ multi_json (~> 1.0)
18
15
  diff-lcs (1.2.5)
19
- elasticsearch (0.4.1)
20
- elasticsearch-api (= 0.4.1)
21
- elasticsearch-transport (= 0.4.1)
22
- elasticsearch-api (0.4.1)
16
+ elasticsearch (0.4.11)
17
+ elasticsearch-api (= 0.4.11)
18
+ elasticsearch-transport (= 0.4.11)
19
+ elasticsearch-api (0.4.11)
23
20
  multi_json
24
- elasticsearch-transport (0.4.1)
21
+ elasticsearch-transport (0.4.11)
25
22
  faraday
26
23
  multi_json
27
- factory_girl (4.2.0)
24
+ factory_girl (4.4.0)
28
25
  activesupport (>= 3.0.0)
29
- faraday (0.8.8)
30
- multipart-post (~> 1.2.0)
26
+ faraday (0.9.0)
27
+ multipart-post (>= 1.2, < 3)
31
28
  i18n (0.6.9)
32
- minitest (4.7.5)
33
- multi_json (1.8.2)
34
- multipart-post (1.2.0)
35
- rake (10.1.0)
29
+ multi_json (1.9.2)
30
+ multipart-post (2.0.0)
31
+ rake (10.3.1)
36
32
  rspec (2.14.1)
37
33
  rspec-core (~> 2.14.0)
38
34
  rspec-expectations (~> 2.14.0)
39
35
  rspec-mocks (~> 2.14.0)
40
- rspec-core (2.14.7)
41
- rspec-expectations (2.14.4)
36
+ rspec-core (2.14.8)
37
+ rspec-expectations (2.14.5)
42
38
  diff-lcs (>= 1.1.3, < 2.0)
43
- rspec-mocks (2.14.4)
44
- thread_safe (0.1.3)
45
- atomic
46
- tzinfo (0.3.38)
39
+ rspec-mocks (2.14.6)
40
+ sqlite3 (1.3.9)
41
+ will_paginate (3.0.5)
47
42
 
48
43
  PLATFORMS
49
44
  ruby
50
45
 
51
46
  DEPENDENCIES
52
- bundler (>= 1.0.0)
53
- elastic-queue!
54
- factory_girl
55
- rake
47
+ bundler (~> 1.0)
48
+ elastic_queue!
49
+ factory_girl (~> 4.0)
50
+ rake (~> 10.0)
56
51
  rspec (~> 2.6)
52
+ sqlite3
@@ -18,12 +18,12 @@ Gem::Specification.new do |s|
18
18
  s.files = `git ls-files`.split("\n")
19
19
  s.test_files = Dir['spec/**/*.rb']
20
20
 
21
- s.add_dependency 'activesupport'
22
- s.add_dependency 'elasticsearch', '~>0.4.1'
23
- s.add_dependency 'will_paginate'
24
- s.add_development_dependency 'bundler', '>= 1.0.0'
25
- s.add_development_dependency 'rake'
26
- s.add_development_dependency 'rspec'
27
- s.add_development_dependency 'sqlite3'
28
- s.add_development_dependency 'factory_girl'
29
- end
21
+ s.add_runtime_dependency 'activesupport', '~> 3.0'
22
+ s.add_runtime_dependency 'elasticsearch', '~> 0.4'
23
+ s.add_runtime_dependency 'will_paginate', '~> 3.0'
24
+ s.add_development_dependency 'bundler', '~> 1.0'
25
+ s.add_development_dependency 'rspec', '~> 2.6'
26
+ s.add_development_dependency 'factory_girl', '~> 4.0'
27
+ s.add_development_dependency 'sqlite3', '~> 1.3'
28
+ s.add_development_dependency 'rake', '~> 10.0'
29
+ end
@@ -29,6 +29,10 @@ module ElasticQueue
29
29
  @index_name ||= to_s.underscore
30
30
  end
31
31
 
32
+ def self.index_name=(name)
33
+ @index_name = name
34
+ end
35
+
32
36
  def self.eager_load(includes)
33
37
  @eager_loads = includes
34
38
  end
@@ -37,8 +41,32 @@ module ElasticQueue
37
41
  @eager_loads
38
42
  end
39
43
 
40
- def self.query(options = {})
41
- Query.new(self, options)
44
+ def self.default_scope(proc)
45
+ @default_scope = proc
46
+ end
47
+
48
+ def self.scope(name, body)
49
+ @scopes.merge(name => body)
50
+ end
51
+
52
+ def self.scopes
53
+ @scopes ||= {}
54
+ end
55
+
56
+ # we want to store the scope in our scopes hash
57
+ # for use in chaining scopes
58
+ # we also define it on the class to mimic AR scopes
59
+ def self.scope(name, body)
60
+ scopes.merge! name => body
61
+ singleton_class.send(:define_method, name) do |*args|
62
+ query.instance_exec(*args, &body)
63
+ end
64
+ end
65
+
66
+ def self.query
67
+ Query.new(self).tap do |q|
68
+ q.instance_exec(&@default_scope) if @default_scope
69
+ end
42
70
  end
43
71
 
44
72
  def self.filter(options)
@@ -48,5 +76,11 @@ module ElasticQueue
48
76
  def self.count
49
77
  query.count
50
78
  end
79
+
80
+ # instance methods
81
+ def query
82
+ @query ||= self.class.query
83
+ end
84
+
51
85
  end
52
86
  end
@@ -79,6 +79,16 @@ module ElasticQueue
79
79
 
80
80
  private
81
81
 
82
+ # this allows you to chain scopes
83
+ # the 2+ scopes in the chain will be called
84
+ # on a query object and not on the base object
85
+ def method_missing(method, *args, &block)
86
+ if @queue.respond_to?(method)
87
+ proc = @queue.scopes[method]
88
+ instance_exec *args, &proc
89
+ end
90
+ end
91
+
82
92
  def execute_query(count: false)
83
93
  search_type = count ? 'count' : 'query_then_fetch'
84
94
  @queue.search_client.search index: @queue.index_name, body: body, search_type: search_type, from: @options.from, size: @options.per_page
@@ -1,3 +1,3 @@
1
1
  module ElasticQueue
2
- VERSION = '0.0.9'
2
+ VERSION = '0.0.10'
3
3
  end
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.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruth Thompson
@@ -9,120 +9,120 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-21 00:00:00.000000000 Z
12
+ date: 2014-05-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '0'
20
+ version: '3.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ">="
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '0'
27
+ version: '3.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: elasticsearch
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 0.4.1
34
+ version: '0.4'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 0.4.1
41
+ version: '0.4'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: will_paginate
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ">="
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '0'
48
+ version: '3.0'
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: '0'
55
+ version: '3.0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: bundler
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">="
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: 1.0.0
62
+ version: '1.0'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">="
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: 1.0.0
69
+ version: '1.0'
70
70
  - !ruby/object:Gem::Dependency
71
- name: rake
71
+ name: rspec
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0'
76
+ version: '2.6'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '0'
83
+ version: '2.6'
84
84
  - !ruby/object:Gem::Dependency
85
- name: rspec
85
+ name: factory_girl
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ">="
88
+ - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '0'
90
+ version: '4.0'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ">="
95
+ - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '0'
97
+ version: '4.0'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: sqlite3
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ">="
102
+ - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '0'
104
+ version: '1.3'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ">="
109
+ - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '0'
111
+ version: '1.3'
112
112
  - !ruby/object:Gem::Dependency
113
- name: factory_girl
113
+ name: rake
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ">="
116
+ - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '0'
118
+ version: '10.0'
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - ">="
123
+ - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: '0'
125
+ version: '10.0'
126
126
  description: A library for storing and filtering documents on elastic search with
127
127
  a queue paradigm for retrieval.
128
128
  email:
@@ -177,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
177
  version: '0'
178
178
  requirements: []
179
179
  rubyforge_project:
180
- rubygems_version: 2.2.0.preview.1
180
+ rubygems_version: 2.2.2
181
181
  signing_key:
182
182
  specification_version: 4
183
183
  summary: A queueing system built on top of elasticsearch.