la_gear 1.2.1 → 1.3.0
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 +4 -4
- data/README.md +2 -0
- data/examples/test_worker.rb +1 -1
- data/la_gear.gemspec +5 -5
- data/lib/la_gear/publisher.rb +1 -7
- data/lib/la_gear/version.rb +1 -1
- data/lib/la_gear/worker.rb +5 -2
- data/test/helper.rb +2 -1
- data/test/test_worker.rb +24 -15
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cf848e73d2235da6d435ad58dca4a1dc145c260d
|
|
4
|
+
data.tar.gz: 0e6c492bd0154d0315a7475e03dce357991601fc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6e2f6b5625e1b8c708029443d13da69e9734334713b66622de4f5cf64d8ce0984cd68dbea5823194a3eb99b593f86d7051ca82d15247646d2adedb8756db0732
|
|
7
|
+
data.tar.gz: c45ddfbcb2dbcc5d64d9a7665576127466ea34b7deaa07b4672a537e3a2a1df741a41297b67a41fd428329eab6584871f8b27d669b410db2e1b4a79b6c1c24b7
|
data/README.md
CHANGED
|
@@ -11,6 +11,8 @@ Here are some other features:
|
|
|
11
11
|
* Helper methods for configuring `sneakers`
|
|
12
12
|
* Support for configuring `sneakers` with [BigWig](http://bigwig.io/)
|
|
13
13
|
|
|
14
|
+
[](https://codeship.com/projects/82628)
|
|
15
|
+
|
|
14
16
|
## Installation
|
|
15
17
|
|
|
16
18
|
Add this line to your application's Gemfile:
|
data/examples/test_worker.rb
CHANGED
|
@@ -21,7 +21,7 @@ bunny.start
|
|
|
21
21
|
channel = bunny.channel
|
|
22
22
|
queue = channel.queue(
|
|
23
23
|
TestWorker.default_queue_name,
|
|
24
|
-
TestWorker.default_queue_opts.merge(durable: true)
|
|
24
|
+
TestWorker.default_queue_opts.merge(durable: true, arguments: TestWorker.default_queue_args),
|
|
25
25
|
)
|
|
26
26
|
queue.purge
|
|
27
27
|
r = Sneakers::Runner.new([TestWorker])
|
data/la_gear.gemspec
CHANGED
|
@@ -8,18 +8,18 @@ Gem::Specification.new do |spec|
|
|
|
8
8
|
spec.version = LaGear::VERSION
|
|
9
9
|
spec.authors = ['Gabriel Chaney', 'Andy Arminio', 'Jonah Hirsch']
|
|
10
10
|
spec.email = ['gabriel.chaney@gmail.com', '5thWall@gmail.com', 'jonah.w.h@gmail.com']
|
|
11
|
-
spec.summary =
|
|
12
|
-
spec.description =
|
|
11
|
+
spec.summary = 'A thin abstraction on-top-of sneakers to DRY your workers. Pump it up!'
|
|
12
|
+
spec.description = 'This gem allows you to DRY up your sneakers workers by using a conventions-based configuration. It also includes a LaGear::Bus class that allows you to pass in more options when publishing to an exchange.'
|
|
13
13
|
spec.homepage = 'https://github.com/giftcardzen/la_gear'
|
|
14
14
|
spec.license = 'MIT'
|
|
15
15
|
|
|
16
|
-
spec.files = `git ls-files`.split($/).reject{|f| f == 'Gemfile.lock'}
|
|
16
|
+
spec.files = `git ls-files`.split($/).reject { |f| f == 'Gemfile.lock' }
|
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
19
|
spec.require_paths = ['lib']
|
|
20
20
|
spec.add_dependency 'json', '~> 1.8'
|
|
21
|
-
spec.add_dependency 'bunny', '~>
|
|
22
|
-
spec.add_dependency 'sneakers', '~>
|
|
21
|
+
spec.add_dependency 'bunny', '~> 2.2.0'
|
|
22
|
+
spec.add_dependency 'sneakers', '~> 2.3'
|
|
23
23
|
spec.add_dependency 'activesupport', '~> 4.2'
|
|
24
24
|
spec.add_dependency 'sidekiq', '~> 3.3'
|
|
25
25
|
spec.add_dependency 'connection_pool', '~> 2.1'
|
data/lib/la_gear/publisher.rb
CHANGED
|
@@ -6,8 +6,6 @@ module LaGear
|
|
|
6
6
|
super(self.class.serialize(msg), opts)
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
protected
|
|
10
|
-
|
|
11
9
|
def self.serialize(msg)
|
|
12
10
|
msg.to_json
|
|
13
11
|
end
|
|
@@ -20,11 +18,7 @@ module LaGear
|
|
|
20
18
|
@bunny = Bunny.new(@opts[:amqp_publish] || @opts[:amqp], opts)
|
|
21
19
|
@bunny.start
|
|
22
20
|
@channel = @bunny.create_channel
|
|
23
|
-
@exchange = @channel.exchange(
|
|
24
|
-
@opts[:exchange],
|
|
25
|
-
type: @opts[:exchange_type],
|
|
26
|
-
durable: @opts[:durable]
|
|
27
|
-
)
|
|
21
|
+
@exchange = @channel.exchange(@opts[:exchange], @opts[:exchange_options])
|
|
28
22
|
end
|
|
29
23
|
|
|
30
24
|
def connected?
|
data/lib/la_gear/version.rb
CHANGED
data/lib/la_gear/worker.rb
CHANGED
|
@@ -6,6 +6,7 @@ module LaGear
|
|
|
6
6
|
else
|
|
7
7
|
base.send(:include, ::Sneakers::Worker)
|
|
8
8
|
base.extend(SneakersClassMethods)
|
|
9
|
+
|
|
9
10
|
base.from_queue base.default_queue_name, base.default_queue_opts
|
|
10
11
|
end
|
|
11
12
|
base.send(:include, ::Sidekiq::Worker)
|
|
@@ -26,13 +27,15 @@ module LaGear
|
|
|
26
27
|
|
|
27
28
|
module SneakersClassMethods
|
|
28
29
|
def default_queue_name
|
|
29
|
-
"#{::Sneakers::CONFIG.fetch(:app_name, '
|
|
30
|
+
"#{::Sneakers::CONFIG.fetch(:app_name, 'sneakers').underscore}.#{routing_key}"
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
def default_queue_opts
|
|
33
34
|
{
|
|
34
35
|
routing_key: [routing_key, retry_routing_key],
|
|
35
|
-
|
|
36
|
+
queue_options: {
|
|
37
|
+
arguments: default_queue_args
|
|
38
|
+
}.merge(::Sneakers::CONFIG.fetch(:global_queue_options, {})),
|
|
36
39
|
handler_opts: {
|
|
37
40
|
routing_key: retry_routing_key
|
|
38
41
|
}
|
data/test/helper.rb
CHANGED
|
@@ -10,7 +10,6 @@ begin
|
|
|
10
10
|
require 'pry-byebug'
|
|
11
11
|
rescue LoadError
|
|
12
12
|
end
|
|
13
|
-
|
|
14
13
|
require 'minitest/autorun'
|
|
15
14
|
require 'minitest/pride'
|
|
16
15
|
require 'sidekiq'
|
|
@@ -21,5 +20,7 @@ require 'la_gear'
|
|
|
21
20
|
require 'active_support/all'
|
|
22
21
|
require 'pry'
|
|
23
22
|
|
|
23
|
+
ActiveSupport::TestCase.test_order = :random
|
|
24
|
+
|
|
24
25
|
LaGear::Test = Minitest::Test
|
|
25
26
|
LaGear::Spec = Minitest::Spec
|
data/test/test_worker.rb
CHANGED
|
@@ -38,18 +38,31 @@ class TestWorker < LaGear::Test
|
|
|
38
38
|
PumpItUp.retry_routing_key.must_equal "#{Sneakers::CONFIG[:app_name]}.#{@expected_queue_routing_key}.retry"
|
|
39
39
|
end
|
|
40
40
|
|
|
41
|
-
it 'must have bo_knows.pump_it_up.retry as the retry_routing_key' do
|
|
42
|
-
PumpItUp.retry_routing_key.must_equal "#{Sneakers::CONFIG[:app_name]}.#{@expected_queue_routing_key}.retry"
|
|
43
|
-
end
|
|
44
|
-
|
|
45
41
|
it 'must have default queue has with x-dead-letter-exchange of football.retry' do
|
|
46
42
|
PumpItUp.default_queue_args.must_equal 'x-dead-letter-exchange' => "#{Sneakers::CONFIG[:exchange]}.retry"
|
|
47
43
|
end
|
|
48
44
|
|
|
45
|
+
describe 'when global queue_arguments are set' do
|
|
46
|
+
before do
|
|
47
|
+
@global_queue_args = { 'x-expires' => 60_000 }
|
|
48
|
+
Sneakers::CONFIG[:global_queue_options] = @global_queue_args
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
after do
|
|
52
|
+
Sneakers::CONFIG.delete(:global_queue_options)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it 'must include global queue_arguments' do
|
|
56
|
+
PumpItUp.default_queue_opts[:queue_options]['x-expires'].must_equal 60_000
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
49
60
|
it 'must have default queue options hash' do
|
|
50
61
|
PumpItUp.default_queue_opts.must_equal(
|
|
51
62
|
routing_key: [PumpItUp.routing_key, PumpItUp.retry_routing_key],
|
|
52
|
-
|
|
63
|
+
queue_options: {
|
|
64
|
+
arguments: PumpItUp.default_queue_args
|
|
65
|
+
},
|
|
53
66
|
handler_opts: {
|
|
54
67
|
routing_key: PumpItUp.retry_routing_key
|
|
55
68
|
}
|
|
@@ -90,10 +103,6 @@ class TestWorker < LaGear::Test
|
|
|
90
103
|
NotPogs::V2.retry_routing_key.must_equal "#{Sneakers::CONFIG[:app_name]}.#{@expected_queue_routing_key}.retry"
|
|
91
104
|
end
|
|
92
105
|
|
|
93
|
-
it 'must have bo_knows.pump_it_up.retry as the retry_routing_key' do
|
|
94
|
-
NotPogs::V2.retry_routing_key.must_equal "#{Sneakers::CONFIG[:app_name]}.#{@expected_queue_routing_key}.retry"
|
|
95
|
-
end
|
|
96
|
-
|
|
97
106
|
it 'must have default queue has with x-dead-letter-exchange of football.retry' do
|
|
98
107
|
NotPogs::V2.default_queue_args.must_equal 'x-dead-letter-exchange' => "#{Sneakers::CONFIG[:exchange]}.retry"
|
|
99
108
|
end
|
|
@@ -101,7 +110,9 @@ class TestWorker < LaGear::Test
|
|
|
101
110
|
it 'must have default queue options hash' do
|
|
102
111
|
NotPogs::V2.default_queue_opts.must_equal(
|
|
103
112
|
routing_key: [NotPogs::V2.routing_key, NotPogs::V2.retry_routing_key],
|
|
104
|
-
|
|
113
|
+
queue_options: {
|
|
114
|
+
arguments: NotPogs::V2.default_queue_args
|
|
115
|
+
},
|
|
105
116
|
handler_opts: {
|
|
106
117
|
routing_key: NotPogs::V2.retry_routing_key
|
|
107
118
|
}
|
|
@@ -130,10 +141,6 @@ class TestWorker < LaGear::Test
|
|
|
130
141
|
GoGo::PowerRangers::V2.retry_routing_key.must_equal "#{Sneakers::CONFIG[:app_name]}.#{@expected_queue_routing_key}.retry"
|
|
131
142
|
end
|
|
132
143
|
|
|
133
|
-
it 'must have bo_knows.pump_it_up.retry as the retry_routing_key' do
|
|
134
|
-
GoGo::PowerRangers::V2.retry_routing_key.must_equal "#{Sneakers::CONFIG[:app_name]}.#{@expected_queue_routing_key}.retry"
|
|
135
|
-
end
|
|
136
|
-
|
|
137
144
|
it 'must have default queue has with x-dead-letter-exchange of football.retry' do
|
|
138
145
|
GoGo::PowerRangers::V2.default_queue_args.must_equal 'x-dead-letter-exchange' => "#{Sneakers::CONFIG[:exchange]}.retry"
|
|
139
146
|
end
|
|
@@ -141,7 +148,9 @@ class TestWorker < LaGear::Test
|
|
|
141
148
|
it 'must have default queue options hash' do
|
|
142
149
|
GoGo::PowerRangers::V2.default_queue_opts.must_equal(
|
|
143
150
|
routing_key: [GoGo::PowerRangers::V2.routing_key, GoGo::PowerRangers::V2.retry_routing_key],
|
|
144
|
-
|
|
151
|
+
queue_options: {
|
|
152
|
+
arguments: GoGo::PowerRangers::V2.default_queue_args
|
|
153
|
+
},
|
|
145
154
|
handler_opts: {
|
|
146
155
|
routing_key: GoGo::PowerRangers::V2.retry_routing_key
|
|
147
156
|
}
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: la_gear
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gabriel Chaney
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2015-
|
|
13
|
+
date: 2015-10-12 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: json
|
|
@@ -32,28 +32,28 @@ dependencies:
|
|
|
32
32
|
requirements:
|
|
33
33
|
- - "~>"
|
|
34
34
|
- !ruby/object:Gem::Version
|
|
35
|
-
version:
|
|
35
|
+
version: 2.2.0
|
|
36
36
|
type: :runtime
|
|
37
37
|
prerelease: false
|
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
39
39
|
requirements:
|
|
40
40
|
- - "~>"
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
|
-
version:
|
|
42
|
+
version: 2.2.0
|
|
43
43
|
- !ruby/object:Gem::Dependency
|
|
44
44
|
name: sneakers
|
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
|
46
46
|
requirements:
|
|
47
47
|
- - "~>"
|
|
48
48
|
- !ruby/object:Gem::Version
|
|
49
|
-
version:
|
|
49
|
+
version: '2.3'
|
|
50
50
|
type: :runtime
|
|
51
51
|
prerelease: false
|
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
|
53
53
|
requirements:
|
|
54
54
|
- - "~>"
|
|
55
55
|
- !ruby/object:Gem::Version
|
|
56
|
-
version:
|
|
56
|
+
version: '2.3'
|
|
57
57
|
- !ruby/object:Gem::Dependency
|
|
58
58
|
name: activesupport
|
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -228,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
228
228
|
version: '0'
|
|
229
229
|
requirements: []
|
|
230
230
|
rubyforge_project:
|
|
231
|
-
rubygems_version: 2.4.
|
|
231
|
+
rubygems_version: 2.4.8
|
|
232
232
|
signing_key:
|
|
233
233
|
specification_version: 4
|
|
234
234
|
summary: A thin abstraction on-top-of sneakers to DRY your workers. Pump it up!
|