rollbar 0.11.8 → 0.12.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: e34c12766fca0c2c51b5d6259d61bd885d694363
4
- data.tar.gz: cd6a924aec8457baed0c13ebd42a0fdc74510d1c
3
+ metadata.gz: d821880871796e7a3f286f28efed45d344e58f7a
4
+ data.tar.gz: 3e955416377adb50366976787a1b96f8fe0f7267
5
5
  SHA512:
6
- metadata.gz: 89089b7cdb5258f4b1213f9bcea22e6935833572726a7719e0fa031a030a98d25a4fa8f5fb559f441e4d302e10d3b0d35f6fb385b6ae2dd43c92f1255b39d55d
7
- data.tar.gz: 2afcf44b731cd0afa68ba8200e3bab04c38da570b5420296fba3dbbf88a883b52c0db2ac86d2c5a969e984a204c74750826fc8c15fb881f547fe2eccec8202e3
6
+ metadata.gz: f524945b9cddd9a18ef5a346d0416475c12d257dde63598a49514d3601e24e773e7b8705d434a9d5cc77a97b2c5b2df676f80aa0fe26264f40771d33e2d25c77
7
+ data.tar.gz: 093270b5b4852101b26196e287c92be720cdb02e1c198b29397b977c1db249115484024670b59b31501b1ed34871be756b968655a15cdfbac606aedebdae2ff4
@@ -1,5 +1,8 @@
1
1
  # Change Log
2
2
 
3
+ **0.12.0**
4
+ - Added [#73](https://github.com/rollbar/rollbar-gem/pull/73), enhanced Sidekiq and SuckerPunch configuration. NOTE: The old `Rollbar::Configuration#use_sidekiq=` and `Rollbar::Configuration#use_sucker_punch=` methods are now depricated, see the docs for updated usage information.
5
+
3
6
  **0.11.8**
4
7
  - Make sure the person method exists for the controller before trying to extract person data
5
8
 
data/README.md CHANGED
@@ -206,7 +206,7 @@ Asynchronous reporting falls back to Threading if girl_friday is not installed.
206
206
  Add the following in ```config/initializers/rollbar.rb```:
207
207
 
208
208
  ```ruby
209
- config.use_sucker_punch = true
209
+ config.use_sucker_punch
210
210
  ```
211
211
 
212
212
  ### Using Sidekiq
@@ -214,13 +214,13 @@ config.use_sucker_punch = true
214
214
  Add the following in ```config/initializers/rollbar.rb```:
215
215
 
216
216
  ```ruby
217
- config.use_sidekiq = true
217
+ config.use_sidekiq
218
218
  ```
219
219
 
220
220
  You can also supply custom Sidekiq options:
221
221
 
222
222
  ```ruby
223
- config.use_sidekiq = { 'queue' => 'my_queue' }
223
+ config.use_sidekiq { 'queue' => 'my_queue' }
224
224
  ```
225
225
 
226
226
  Start the redis server:
@@ -41,10 +41,10 @@ Rollbar.configure do |config|
41
41
  # }
42
42
 
43
43
  # Enable asynchronous reporting (using sucker_punch)
44
- # config.use_sucker_punch = true
44
+ # config.use_sucker_punch
45
45
 
46
46
  # Enable delayed reporting (using Sidekiq)
47
- # config.use_sidekiq = true
47
+ # config.use_sidekiq
48
48
  # You can supply custom Sidekiq options:
49
- # config.use_sidekiq = { 'queue' => 'my_queue' }
49
+ # config.use_sidekiq { 'queue' => 'my_queue' }
50
50
  end
@@ -63,21 +63,31 @@ module Rollbar
63
63
  @write_to_file = false
64
64
  end
65
65
 
66
+ def use_sidekiq(options = {})
67
+ require 'rollbar/delay/sidekiq' if defined?(Sidekiq)
68
+ @use_async = true
69
+ @use_sidekiq = true
70
+ @async_handler = Rollbar::Delay::Sidekiq.new(options)
71
+ end
72
+
66
73
  def use_sidekiq=(value)
67
- if value
68
- require 'rollbar/delay/sidekiq' if defined?(Sidekiq)
69
- @use_async = true
70
- @use_sidekiq = value
71
- @async_handler = Rollbar::Delay::Sidekiq.method(:handle)
72
- end
74
+ deprecation_message = "#use_sidekiq=(value) has been deprecated in favor of #use_sidekiq(options = {}). Please update your rollbar configuration."
75
+ defined?(ActiveSupport) ? ActiveSupport::Deprecation.warn(deprecation_message) : puts(deprecation_message)
76
+
77
+ value.is_a?(Hash) ? use_sidekiq(value) : use_sidekiq
78
+ end
79
+
80
+ def use_sucker_punch
81
+ require 'rollbar/delay/sucker_punch' if defined?(SuckerPunch)
82
+ @use_async = true
83
+ @async_handler = Rollbar::Delay::SuckerPunch.new
73
84
  end
74
85
 
75
86
  def use_sucker_punch=(value)
76
- if value
77
- require 'rollbar/delay/sucker_punch' if defined?(SuckerPunch)
78
- @use_async = true
79
- @async_handler = Rollbar::Delay::SuckerPunch.method(:handle)
80
- end
87
+ deprecation_message = "#use_sucker_punch=(value) has been deprecated in favor of #use_sucker_punch. Please update your rollbar configuration."
88
+ defined?(ActiveSupport) ? ActiveSupport::Deprecation.warn(deprecation_message) : puts(deprecation_message)
89
+
90
+ use_sucker_punch
81
91
  end
82
92
 
83
93
  def use_eventmachine=(value)
@@ -5,10 +5,12 @@ module Rollbar
5
5
  class Sidekiq
6
6
  OPTIONS = { 'queue' => 'rollbar', 'class' => self.name }.freeze
7
7
 
8
- def self.handle(payload)
9
- item = Rollbar.configuration.use_sidekiq.is_a?(Hash) ? OPTIONS.merge(Rollbar.configuration.use_sidekiq) : OPTIONS
8
+ def initialize(*args)
9
+ @options = (opts = args.shift) ? OPTIONS.merge(opts) : OPTIONS
10
+ end
10
11
 
11
- ::Sidekiq::Client.push item.merge('args' => [payload])
12
+ def call(payload)
13
+ ::Sidekiq::Client.push @options.merge('args' => [payload])
12
14
  end
13
15
 
14
16
  include ::Sidekiq::Worker
@@ -3,13 +3,13 @@ require 'sucker_punch'
3
3
  module Rollbar
4
4
  module Delay
5
5
  class SuckerPunch
6
- def self.handle(payload)
7
- @@sucker_punch_worker ||= self.new
8
- @@sucker_punch_worker.async.perform payload
9
- end
10
6
 
11
7
  include ::SuckerPunch::Job
12
8
 
9
+ def call(payload)
10
+ async.perform payload
11
+ end
12
+
13
13
  def perform(*args)
14
14
  Rollbar.process_payload(*args)
15
15
  end
@@ -1,3 +1,3 @@
1
1
  module Rollbar
2
- VERSION = "0.11.8"
2
+ VERSION = "0.12.0"
3
3
  end
@@ -2,39 +2,60 @@ require 'spec_helper'
2
2
 
3
3
  begin
4
4
  require 'rollbar/delay/sidekiq'
5
+ require 'sidekiq/testing'
5
6
  rescue LoadError
7
+ module Rollbar
8
+ module Delay
9
+ class Sidekiq
10
+ end
11
+ end
12
+ end
6
13
  end
7
14
 
8
- if defined?(Sidekiq)
9
- describe Rollbar::Delay::Sidekiq do
10
- before(:each) do
11
- reset_configuration
15
+ describe Rollbar::Delay::Sidekiq, :if => RUBY_VERSION != '1.8.7' do
16
+ let(:payload) { anything }
17
+
18
+ describe "#perform" do
19
+ it "performs payload" do
20
+ Rollbar.should_receive(:process_payload).with(payload)
21
+ subject.perform payload
12
22
  end
13
-
14
- describe ".handler" do
15
- let(:payload) { anything }
16
-
17
- context "with default options" do
18
- before { Rollbar.configuration.use_sidekiq = true }
19
-
20
- it "enqueues to default queue" do
21
- ::Sidekiq::Client.should_receive(:push).with(Rollbar::Delay::Sidekiq::OPTIONS.merge('args' => payload))
22
- Rollbar::Delay::Sidekiq.handle(payload)
23
- end
23
+ end
24
+
25
+ describe "#call" do
26
+ shared_examples "a Rollbar processor" do
27
+
28
+ it "processes payload" do
29
+ Rollbar.should_receive(:process_payload).with(payload)
30
+
31
+ subject.call payload
32
+ described_class.drain
24
33
  end
25
-
26
- context "with custom options" do
27
- let(:custom_config) { { 'queue' => 'custom_queue' } }
28
-
29
- before { Rollbar.configuration.use_sidekiq = custom_config }
30
-
31
- it "enqueues to custom queue" do
32
- options = Rollbar::Delay::Sidekiq::OPTIONS.merge(custom_config.merge('args' => payload))
33
- ::Sidekiq::Client.should_receive(:push).with options
34
-
35
- Rollbar::Delay::Sidekiq.handle(payload)
36
- end
34
+ end
35
+
36
+ context "with default options" do
37
+ it "enqueues to default queue" do
38
+ options = Rollbar::Delay::Sidekiq::OPTIONS.merge('args' => payload)
39
+ ::Sidekiq::Client.should_receive(:push).with options
40
+
41
+ subject.call payload
37
42
  end
43
+
44
+ it_behaves_like "a Rollbar processor"
45
+ end
46
+
47
+ context "with custom options" do
48
+ let(:custom_config) { { 'queue' => 'custom_queue' } }
49
+ subject { Rollbar::Delay::Sidekiq.new custom_config }
50
+
51
+ it "enqueues to custom queue" do
52
+ options = Rollbar::Delay::Sidekiq::OPTIONS.merge(custom_config.merge('args' => payload))
53
+ ::Sidekiq::Client.should_receive(:push).with options
54
+
55
+ subject.call payload
56
+ end
57
+
58
+ it_behaves_like "a Rollbar processor"
38
59
  end
39
60
  end
40
- end
61
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ begin
4
+ require 'rollbar/delay/sucker_punch'
5
+ require 'sucker_punch/testing/inline'
6
+ rescue LoadError
7
+ module Rollbar
8
+ module Delay
9
+ class SuckerPunch
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ describe Rollbar::Delay::SuckerPunch, :if => RUBY_VERSION != '1.8.7' do
16
+ describe "#call" do
17
+ let(:payload) { "anything" }
18
+
19
+ it "performs asynchronously the task" do
20
+ Rollbar.should_receive(:process_payload)
21
+
22
+ subject.call payload
23
+ end
24
+ end
25
+ end
@@ -370,18 +370,18 @@ describe Rollbar do
370
370
  end
371
371
  end
372
372
 
373
- if defined?(SuckerPunch)
373
+ describe "#use_sucker_punch", :if => defined?(SuckerPunch) do
374
374
  it "should send the payload to sucker_punch delayer" do
375
375
  logger_mock.should_receive(:info).with('[Rollbar] Scheduling payload')
376
376
  logger_mock.should_receive(:info).with('[Rollbar] Sending payload')
377
377
  logger_mock.should_receive(:info).with('[Rollbar] Success')
378
-
378
+
379
379
  Rollbar.configure do |config|
380
- config.use_sucker_punch = true
380
+ config.use_sucker_punch
381
381
  end
382
-
382
+
383
383
  Rollbar.report_exception(@exception)
384
-
384
+
385
385
  Rollbar.configure do |config|
386
386
  config.use_async = false
387
387
  config.async_handler = Rollbar.method(:default_async_handler)
@@ -389,25 +389,28 @@ describe Rollbar do
389
389
  end
390
390
  end
391
391
 
392
- it "should send the payload to sidekiq delayer" do
393
- module Rollbar
394
- module Delay
395
- class Sidekiq
396
- end
397
- end
392
+ describe "#use_sidekiq", :if => defined?(Sidekiq) do
393
+ it "should instanciate sidekiq delayer with custom values" do
394
+ Rollbar::Delay::Sidekiq.should_receive(:new).with('queue' => 'test_queue')
395
+ config = Rollbar::Configuration.new
396
+ config.use_sidekiq 'queue' => 'test_queue'
398
397
  end
399
398
 
400
- Rollbar::Delay::Sidekiq.should_receive(:handle).with(anything)
399
+ it "should send the payload to sidekiq delayer" do
400
+ handler = double('sidekiq_handler_mock')
401
+ handler.should_receive(:call)
401
402
 
402
- Rollbar.configure do |config|
403
- config.use_sidekiq = { 'queue' => 'test_queue' }
404
- end
403
+ Rollbar.configure do |config|
404
+ config.use_sidekiq
405
+ config.async_handler = handler
406
+ end
405
407
 
406
- Rollbar.report_exception(@exception)
408
+ Rollbar.report_exception(@exception)
407
409
 
408
- Rollbar.configure do |config|
409
- config.use_async = false
410
- config.async_handler = Rollbar.method(:default_async_handler)
410
+ Rollbar.configure do |config|
411
+ config.use_async = false
412
+ config.async_handler = Rollbar.method(:default_async_handler)
413
+ end
411
414
  end
412
415
  end
413
416
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rollbar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.8
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Rue
@@ -171,6 +171,7 @@ files:
171
171
  - rollbar.gemspec
172
172
  - spec/controllers/home_controller_spec.rb
173
173
  - spec/delay/sidekiq_spec.rb
174
+ - spec/delay/sucker_punch_spec.rb
174
175
  - spec/dummyapp/.gitignore
175
176
  - spec/dummyapp/Rakefile
176
177
  - spec/dummyapp/app/assets/javascripts/application.js
@@ -252,6 +253,7 @@ summary: Reports exceptions to Rollbar
252
253
  test_files:
253
254
  - spec/controllers/home_controller_spec.rb
254
255
  - spec/delay/sidekiq_spec.rb
256
+ - spec/delay/sucker_punch_spec.rb
255
257
  - spec/dummyapp/.gitignore
256
258
  - spec/dummyapp/Rakefile
257
259
  - spec/dummyapp/app/assets/javascripts/application.js