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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: af0f62ca02e7a0d327d376e9d1e43c72819f5cbe
4
- data.tar.gz: 164640b8a42d87770dc09c2eb4a73195e21cf502
3
+ metadata.gz: cf848e73d2235da6d435ad58dca4a1dc145c260d
4
+ data.tar.gz: 0e6c492bd0154d0315a7475e03dce357991601fc
5
5
  SHA512:
6
- metadata.gz: 8c87e0696e4d709d2332f01f4d0c77bcd1725e5114173f98c7aef887ade8af73fe41afa34e44e3d98bb010e8aef3cc6f87d24267ab152793a7f70f3f4a7181ec
7
- data.tar.gz: 4fa5b3011ec6741c0531677777aa816fef663edcea671885f180334efb2a89343588763a703cc46d51b535060517c4b5da29f71bf6c818adde4377276211d083
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
+ [![Build status](https://codeship.com/projects/26f19c80-e7c0-0132-7554-4e340869c11f/status?branch=master)](https://codeship.com/projects/82628)
15
+
14
16
  ## Installation
15
17
 
16
18
  Add this line to your application's Gemfile:
@@ -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 = %q{A thin abstraction on-top-of sneakers to DRY your workers. Pump it up!}
12
- spec.description = %q{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.}
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', '~> 1.6'
22
- spec.add_dependency 'sneakers', '~> 1.0.4'
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'
@@ -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?
@@ -1,3 +1,3 @@
1
1
  module LaGear
2
- VERSION = '1.2.1'
2
+ VERSION = '1.3.0'
3
3
  end
@@ -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, 'sneakers_app').underscore}.#{routing_key}"
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
- arguments: default_queue_args,
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
- arguments: PumpItUp.default_queue_args,
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
- arguments: NotPogs::V2.default_queue_args,
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
- arguments: GoGo::PowerRangers::V2.default_queue_args,
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.2.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-07-17 00:00:00.000000000 Z
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: '1.6'
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: '1.6'
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: 1.0.4
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: 1.0.4
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.6
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!