elastic_queue 0.0.9 → 0.0.10

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.
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.