la_gear 1.2.1 → 1.3.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: 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!