rollbar 2.8.3 → 2.9.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: 681f393e2fa4f6c1c4883bbf4e0c9d5783622fd6
4
- data.tar.gz: 4538d40c64e3ec495a439aa85ae06c9af67fd659
3
+ metadata.gz: 3dc9f3d80ba20b90a83809caefd61cbb724d5f99
4
+ data.tar.gz: a5bb67e2c58339159d475f23f4f6055db837cb46
5
5
  SHA512:
6
- metadata.gz: 466ecc982464a853f02cb7e5bf2b13f513022a0563fdfeeadc4cb33d65b8beb226835eeb101cf3cf2d12df0c3a8feeff65220bd0491c1c20a34e6e41b6be3579
7
- data.tar.gz: 8ee1700a380167d7aea6ea3ebd1f6d0785e725f07c72103c3548fbbfbe98216bbfd630181d1c5013b7f3af09ac7dfdc3af1a364e24e0f0710281795458229f67
6
+ metadata.gz: fc4d5c761209f259b2e5761f4cd5843d37083d6996ef758ab1504f02db3d82416c34d61dbd53bdd863caaec47624dec1924a02c6f9fc0d778cd649737b6d16f5
7
+ data.tar.gz: be9b1342ca1345c1133f0ff7d2144a7a3f4b82431d15958b70eea419f402acc1cfa112808fa09beb07d11e5b5916b074d9163f298aa1fe918d1e41b90fb27197
data/.codeclimate.yml ADDED
@@ -0,0 +1,18 @@
1
+ ---
2
+ engines:
3
+ duplication:
4
+ enabled: true
5
+ config:
6
+ languages:
7
+ - ruby
8
+ eslint:
9
+ enabled: false
10
+ fixme:
11
+ enabled: true
12
+ rubocop:
13
+ enabled: true
14
+ ratings:
15
+ paths:
16
+ - "**.rb"
17
+ exclude_paths:
18
+ - spec/
data/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Change Log
2
2
 
3
+ ## 2.9.0
4
+
5
+ Bug fixes:
6
+
7
+ - Clean scope before every Sidekiq job execution. See [#421](https://github.com/rollbar/rollbar-gem/pull/421).
8
+ - Threads reaper. See [#418](https://github.com/rollbar/rollbar-gem/pull/418).
9
+
10
+ New features:
11
+ - Rollbar logger. See [#417](https://github.com/rollbar/rollbar-gem/pull/417).
12
+
13
+ Others:
14
+ - Fix dependencies. See [#402](https://github.com/rollbar/rollbar-gem/pull/402).
15
+ - Use mime-types < 3.0 for RUBY < 2.0. See [#420](https://github.com/rollbar/rollbar-gem/pull/420).
16
+ - Add .codeclimate.yml. See [#409](https://github.com/rollbar/rollbar-gem/pull/409).
17
+ - Use SimpleCov with CodeClimate formatter. See [#408](https://github.com/rollbar/rollbar-gem/pull/408).
18
+ - Setup CodeClimate coverage. See [#407](https://github.com/rollbar/rollbar-gem/pull/407).
19
+ - Typo in the transform hook documentation. See [#406](https://github.com/rollbar/rollbar-gem/pull/406).
20
+
21
+
3
22
  ## 2.8.3
4
23
 
5
24
  Bug fixes:
data/Gemfile CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_ENGINE)
6
+
5
7
  gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
6
8
  gem "jruby-openssl", :platform => :jruby
7
9
  gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
@@ -11,7 +13,24 @@ gem "racc", :platform => :rbx
11
13
  gem "minitest", :platform => :rbx
12
14
  gem "rubinius-developer_tools", :platform => :rbx
13
15
  gem "rails", "4.2.3"
14
- gem 'byebug'
16
+ gem 'rspec-rails', '~> 3.4'
17
+ gem 'rake'
15
18
 
16
- gemspec
19
+ gem 'oj', '~> 2.12.14' unless is_jruby
20
+ gem 'sidekiq', '>= 2.13.0' if RUBY_VERSION != '1.8.7'
21
+
22
+ if RUBY_VERSION.start_with?('1.9')
23
+ gem 'sucker_punch', '~> 1.0'
24
+ elsif RUBY_VERSION.start_with?('2')
25
+ gem 'sucker_punch', '~> 2.0'
26
+ end
17
27
 
28
+ gem 'sinatra'
29
+ gem 'resque'
30
+ gem 'delayed_job', :require => false
31
+ gem 'redis'
32
+ gem 'database_cleaner', '~> 1.0.0'
33
+ gem 'girl_friday', '>= 0.11.1'
34
+ gem 'generator_spec'
35
+
36
+ gemspec
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Rollbar notifier for Ruby [![Build Status](https://api.travis-ci.org/rollbar/rollbar-gem.svg?branch=v2.8.3)](https://travis-ci.org/rollbar/rollbar-gem/branches)
1
+ # Rollbar notifier for Ruby [![Build Status](https://api.travis-ci.org/rollbar/rollbar-gem.svg?branch=v2.9.0)](https://travis-ci.org/rollbar/rollbar-gem/branches)
2
2
 
3
3
  <!-- RemoveNext -->
4
4
  [Rollbar](https://rollbar.com) is an error tracking service for Ruby and other languages. The Rollbar service will alert you of problems with your code and help you understand them in a ways never possible before. We love it and we hope you will too.
@@ -12,7 +12,7 @@ This is the Ruby library for Rollbar. It will instrument many kinds of Ruby appl
12
12
  Add this line to your application's Gemfile:
13
13
 
14
14
  ```ruby
15
- gem 'rollbar', '~> 2.8.3'
15
+ gem 'rollbar'
16
16
  ```
17
17
 
18
18
  And then execute:
@@ -488,7 +488,7 @@ handler = proc do |options|
488
488
  end
489
489
 
490
490
  Rollbar.configure do |config|
491
- config.before_process << handler
491
+ config.transform << handler
492
492
  end
493
493
  ```
494
494
 
@@ -533,7 +533,7 @@ Rollbar.silenced {
533
533
  }
534
534
  ```
535
535
 
536
- # Sending backtrace without rescued exceptions
536
+ ## Sending backtrace without rescued exceptions
537
537
 
538
538
  If you use the gem in this way:
539
539
 
@@ -698,6 +698,25 @@ config.failover_handlers = [Rollbar::Delay::GirlFriday, Rollbar::Delay::Thread]
698
698
 
699
699
  With the configuration above Resque will be your primary asynchronous handler but if it fails queueing the job Rollbar will use GirlFriday at first, and just a thread in case that GirlFriday fails too.
700
700
 
701
+ ## Logger interface
702
+
703
+ The gem provides a class `Rollbar::Logger` that inherits from `Logger` so you can use Rollbar to log your application messages. The basic usage is:
704
+
705
+ ```ruby
706
+ require 'rollbar/logger'
707
+
708
+ logger = Rollbar::Logger.new
709
+ logger.info('Purchase failed!')
710
+ ```
711
+
712
+ If you are using Rails you can extend your `Rails.logger` so the log messages are sent to both outputs. You can use this snippet in one initializer:
713
+
714
+ ```ruby
715
+ require 'rollbar/logger'
716
+
717
+ Rails.logger.extend(ActiveSupport::Logger.broadcast(Rollbar::Logger.new))
718
+ ```
719
+
701
720
  ## Using with rollbar-agent
702
721
 
703
722
  For even more asynchrony, you can configure the gem to write to a file instead of sending the payload to Rollbar servers directly. [rollbar-agent](https://github.com/rollbar/rollbar-agent) can then be hooked up to this file to actually send the payload across. To enable, add the following in ```config/initializers/rollbar.rb```:
@@ -1,7 +1,9 @@
1
- # This file was generated by Appraisal
1
+ require 'rubygems/version'
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
+ is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_ENGINE)
6
+
5
7
  gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
6
8
  gem 'jruby-openssl', :platform => :jruby
7
9
  gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
@@ -13,8 +15,29 @@ gem 'rubysl-test-unit', :platform => :rbx
13
15
  gem 'rubinius-developer_tools', :platform => :rbx
14
16
  gem 'rails', '3.0.20'
15
17
  gem 'hitimes', '< 1.2.2'
16
-
18
+ gem 'rake', '< 11'
19
+ gem 'rspec-rails', '>= 2.14.0'
17
20
  gem 'celluloid', '< 0.17.0' if RUBY_VERSION == '1.9.2'
18
21
 
22
+ gem 'oj', '~> 2.12.14' unless is_jruby
23
+ gem 'sidekiq', '>= 2.13.0' if RUBY_VERSION != '1.8.7'
24
+
25
+ if RUBY_VERSION.start_with?('1.9')
26
+ gem 'sucker_punch', '~> 1.0'
27
+ elsif RUBY_VERSION.start_with?('2')
28
+ gem 'sucker_punch', '~> 2.0'
29
+ end
30
+
31
+ gem 'sinatra'
32
+ gem 'resque'
33
+ gem 'delayed_job', :require => false
34
+ gem 'redis'
35
+ gem 'database_cleaner', '~> 1.0.0'
36
+ gem 'genspec', '>= 0.2.8'
37
+ gem 'girl_friday', '>= 0.11.1'
38
+
39
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0')
40
+ gem 'mime-types', '< 3.0'
41
+ end
19
42
 
20
43
  gemspec :path => '../'
@@ -1,7 +1,9 @@
1
- # This file was generated by Appraisal
1
+ require 'rubygems/version'
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_ENGINE)
6
+
5
7
  gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
6
8
  gem "jruby-openssl", :platform => :jruby
7
9
  gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
@@ -12,5 +14,28 @@ gem "minitest", :platform => :rbx
12
14
  gem "rubysl-test-unit", :platform => :rbx
13
15
  gem "rubinius-developer_tools", :platform => :rbx
14
16
  gem "rails", "3.1.12"
17
+ gem 'rspec-rails', '~> 3.4'
18
+ gem 'rake'
19
+
20
+ gem 'oj', '~> 2.12.14' unless is_jruby
21
+ gem 'sidekiq', '>= 2.13.0' if RUBY_VERSION != '1.8.7'
22
+
23
+ if RUBY_VERSION.start_with?('1.9')
24
+ gem 'sucker_punch'
25
+ elsif RUBY_VERSION.start_with?('2')
26
+ gem 'sucker_punch'
27
+ end
28
+
29
+ gem 'sinatra'
30
+ gem 'resque'
31
+ gem 'delayed_job', :require => false
32
+ gem 'redis'
33
+ gem 'database_cleaner'
34
+ gem 'girl_friday'
35
+ gem 'generator_spec'
36
+
37
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0')
38
+ gem 'mime-types', '< 3.0'
39
+ end
15
40
 
16
41
  gemspec :path => "../"
@@ -1,7 +1,9 @@
1
- # This file was generated by Appraisal
1
+ require 'rubygems/version'
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_ENGINE)
6
+
5
7
  gem "test-unit" # Please see https://github.com/rspec/rspec-rails/issues/1273
6
8
  gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
7
9
  gem "jruby-openssl", :platform => :jruby
@@ -13,5 +15,29 @@ gem "minitest", :platform => :rbx
13
15
  gem "rubysl-test-unit", :platform => :rbx
14
16
  gem "rubinius-developer_tools", :platform => :rbx
15
17
  gem "rails", "3.2.22"
18
+ gem 'rspec-rails', '~> 3.4'
19
+ gem 'rake'
20
+
21
+ gem 'oj', '~> 2.12.14' unless is_jruby
22
+ gem 'sidekiq', '>= 2.13.0' if RUBY_VERSION != '1.8.7'
23
+
24
+ if RUBY_VERSION.start_with?('1.9')
25
+ gem 'sucker_punch', '~> 1.0'
26
+ elsif RUBY_VERSION.start_with?('2')
27
+ gem 'sucker_punch', '~> 2.0'
28
+ end
29
+
30
+ gem 'sinatra'
31
+ gem 'resque'
32
+ gem 'delayed_job', :require => false
33
+ gem 'redis'
34
+
35
+ gem 'database_cleaner', '~> 1.0.0'
36
+ gem 'girl_friday', '>= 0.11.1'
37
+ gem 'generator_spec'
38
+
39
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0')
40
+ gem 'mime-types', '< 3.0'
41
+ end
16
42
 
17
43
  gemspec :path => "../"
@@ -1,7 +1,9 @@
1
- # This file was generated by Appraisal
1
+ require 'rubygems/version'
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_ENGINE)
6
+
5
7
  gem "test-unit" # Please see https://github.com/rspec/rspec-rails/issues/1273
6
8
  gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
7
9
  gem "jruby-openssl", :platform => :jruby
@@ -13,5 +15,29 @@ gem "minitest", :platform => :rbx
13
15
  gem "rubysl-test-unit", :platform => :rbx
14
16
  gem "rubinius-developer_tools", :platform => :rbx
15
17
  gem "rails", "4.0.13"
18
+ gem 'rspec-rails', '~> 3.4'
19
+ gem 'rake'
20
+
21
+ gem 'oj', '~> 2.12.14' unless is_jruby
22
+ gem 'sidekiq', '>= 2.13.0' if RUBY_VERSION != '1.8.7'
23
+
24
+ if RUBY_VERSION.start_with?('1.9')
25
+ gem 'sucker_punch', '~> 1.0'
26
+ elsif RUBY_VERSION.start_with?('2')
27
+ gem 'sucker_punch', '~> 2.0'
28
+ end
29
+
30
+ gem 'sinatra'
31
+ gem 'resque'
32
+ gem 'delayed_job', :require => false
33
+ gem 'redis'
34
+
35
+ gem 'database_cleaner', '~> 1.0.0'
36
+ gem 'girl_friday', '>= 0.11.1'
37
+ gem 'generator_spec'
38
+
39
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0')
40
+ gem 'mime-types', '< 3.0'
41
+ end
16
42
 
17
43
  gemspec :path => "../"
@@ -1,7 +1,9 @@
1
- # This file was generated by Appraisal
1
+ require 'rubygems/version'
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_ENGINE)
6
+
5
7
  gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
6
8
  gem "jruby-openssl", :platform => :jruby
7
9
  gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
@@ -11,5 +13,29 @@ gem "racc", :platform => :rbx
11
13
  gem "minitest", :platform => :rbx
12
14
  gem "rubinius-developer_tools", :platform => :rbx
13
15
  gem "rails", "4.1.12"
16
+ gem 'rspec-rails', '~> 3.4'
17
+ gem 'rake'
18
+
19
+ gem 'oj', '~> 2.12.14' unless is_jruby
20
+ gem 'sidekiq', '>= 2.13.0' if RUBY_VERSION != '1.8.7'
21
+
22
+ if RUBY_VERSION.start_with?('1.9')
23
+ gem 'sucker_punch', '~> 1.0'
24
+ elsif RUBY_VERSION.start_with?('2')
25
+ gem 'sucker_punch', '~> 2.0'
26
+ end
27
+
28
+ gem 'sinatra'
29
+ gem 'resque'
30
+ gem 'delayed_job', :require => false
31
+ gem 'redis'
32
+
33
+ gem 'database_cleaner', '~> 1.0.0'
34
+ gem 'girl_friday', '>= 0.11.1'
35
+ gem 'generator_spec'
36
+
37
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0')
38
+ gem 'mime-types', '< 3.0'
39
+ end
14
40
 
15
41
  gemspec :path => "../"
@@ -1,7 +1,9 @@
1
- # This file was generated by Appraisal
1
+ require 'rubygems/version'
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_ENGINE)
6
+
5
7
  gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
6
8
  gem "jruby-openssl", :platform => :jruby
7
9
  gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
@@ -11,5 +13,29 @@ gem "racc", :platform => :rbx
11
13
  gem "minitest", :platform => :rbx
12
14
  gem "rubinius-developer_tools", :platform => :rbx
13
15
  gem "rails", "4.2.3"
16
+ gem 'rspec-rails', '~> 3.4'
17
+ gem 'rake'
18
+
19
+ gem 'oj', '~> 2.12.14' unless is_jruby
20
+ gem 'sidekiq', '>= 2.13.0' if RUBY_VERSION != '1.8.7'
21
+
22
+ if RUBY_VERSION.start_with?('1.9')
23
+ gem 'sucker_punch', '~> 1.0'
24
+ elsif RUBY_VERSION.start_with?('2')
25
+ gem 'sucker_punch', '~> 2.0'
26
+ end
27
+
28
+ gem 'sinatra'
29
+ gem 'resque'
30
+ gem 'delayed_job', :require => false
31
+ gem 'redis'
32
+ gem 'database_cleaner', '~> 1.0.0'
33
+ gem 'girl_friday', '>= 0.11.1'
34
+ gem 'generator_spec'
35
+ gem 'codeclimate-test-reporter', :group => :test, :require => nil
36
+
37
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0')
38
+ gem 'mime-types', '< 3.0'
39
+ end
14
40
 
15
41
  gemspec :path => "../"
@@ -1,5 +1,6 @@
1
1
  require 'rails/generators'
2
2
  require 'rails/generators/named_base'
3
+ require 'generators/rollbar/rollbar_generator'
3
4
 
4
5
  module Rollbar
5
6
  module Generators
@@ -63,7 +63,7 @@ module Rollbar
63
63
  @before_process = []
64
64
  @code_version = nil
65
65
  @custom_data_method = nil
66
- @default_logger = lambda { Logger.new(STDERR) }
66
+ @default_logger = lambda { ::Logger.new(STDERR) }
67
67
  @delayed_job_enabled = true
68
68
  @disable_monkey_patch = false
69
69
  @disable_core_monkey_patch = false
@@ -1,9 +1,65 @@
1
+ require 'thread'
2
+ require 'timeout'
3
+
1
4
  module Rollbar
2
5
  module Delay
3
6
  class Thread
4
- def self.call(payload)
5
- new.call(payload)
6
- end
7
+ EXIT_SIGNAL = :exit
8
+ EXIT_TIMEOUT = 3
9
+
10
+ Error = Class.new(StandardError)
11
+ TimeoutError = Class.new(Error)
12
+
13
+ class << self
14
+ attr_reader :reaper
15
+
16
+ def call(payload)
17
+ spawn_threads_reaper
18
+
19
+ thread = new.call(payload)
20
+ threads << thread
21
+ thread
22
+ end
23
+
24
+ private
25
+
26
+ def threads
27
+ @threads ||= Queue.new
28
+ end
29
+
30
+ def spawn_threads_reaper
31
+ return if @spawned
32
+ @spawned = true
33
+
34
+ @reaper ||= build_reaper_thread
35
+ configure_exit_handler
36
+ end
37
+
38
+ def build_reaper_thread
39
+ ::Thread.start do
40
+ loop do
41
+ thread = threads.pop
42
+
43
+ break if thread == EXIT_SIGNAL
44
+
45
+ thread.join
46
+ end
47
+ end
48
+ end
49
+
50
+ def configure_exit_handler
51
+ at_exit do
52
+ begin
53
+ Timeout.timeout(EXIT_TIMEOUT) do
54
+ threads << EXIT_SIGNAL
55
+ reaper.join
56
+ end
57
+ rescue Timeout::Error
58
+ raise TimeoutError, "unable to reap all threads within #{EXIT_TIMEOUT} seconds"
59
+ end
60
+ end
61
+ end
62
+ end # class << self
7
63
 
8
64
  def call(payload)
9
65
  ::Thread.new do
@@ -0,0 +1,81 @@
1
+ require 'logger'
2
+ require 'rollbar'
3
+
4
+ module Rollbar
5
+ # This class provides logger interface that can be used to replace
6
+ # the application logger and send all the log messages to Rollbar
7
+ #
8
+ # Usage:
9
+ # require 'rollbar/logger'
10
+ # logger = Rollbar::Logger.new
11
+ # logger.error('Error processing purchase')
12
+ #
13
+ # If using Rails, you can extend the Rails logger so messages are logged
14
+ # normally and also to Rollbar:
15
+ #
16
+ # Rails.logger.extend(ActiveSupport::Logger.broadcast(Rollbar::Logger.new))
17
+ class Logger < ::Logger
18
+ class Error < RuntimeError; end
19
+ class DatetimeFormatNotSupported < Error; end
20
+ class FormatterNotSupported < Error; end
21
+
22
+ def initialize
23
+ @level = ERROR
24
+ end
25
+
26
+ def add(severity, message = nil, progname = nil)
27
+ return true if severity < @level
28
+
29
+ message ||= block_given? ? yield : progname
30
+
31
+ return true if message.blank?
32
+
33
+ rollbar.log(rollbar_level(severity), message)
34
+ end
35
+
36
+ def <<(message)
37
+ error(message)
38
+ end
39
+
40
+ def formatter=(_)
41
+ raise(FormatterNotSupported)
42
+ end
43
+
44
+ def formatter
45
+ raise(FormatterNotSupported)
46
+ end
47
+
48
+ def datetime_format=(_)
49
+ raise(DatetimeFormatNotSupported)
50
+ end
51
+
52
+ def datetime_format
53
+ raise(DatetimeFormatNotSupported)
54
+ end
55
+
56
+ # Returns a Rollbar::Notifier instance with the current global scope and
57
+ # with a logger writing to /dev/null so we don't have a infinite loop
58
+ # when Rollbar.configuration.logger is Rails.logger.
59
+ def rollbar
60
+ notifier = Rollbar.scope
61
+ notifier.configuration.logger = ::Logger.new('/dev/null')
62
+
63
+ notifier
64
+ end
65
+
66
+ private
67
+
68
+ # Find correct Rollbar level to use using the indexes in Logger::Severity
69
+ # DEBUG = 0
70
+ # INFO = 1
71
+ # WARN = 2
72
+ # ERROR = 3
73
+ # FATAL = 4
74
+ # UNKNOWN = 5
75
+ #
76
+ # If not found we'll use 'error' as the used level
77
+ def rollbar_level(severity)
78
+ [:debug, :info, :warning, :error, :critical, :error][severity] || :error
79
+ end
80
+ end
81
+ end
@@ -1,4 +1,5 @@
1
1
  require 'rollbar'
2
+ require 'logger'
2
3
 
3
4
  namespace :rollbar do
4
5
  desc "Verify your gem installation by sending a test exception to Rollbar"
@@ -4,6 +4,14 @@ module Rollbar
4
4
  class Sidekiq
5
5
  PARAM_BLACKLIST = %w[backtrace error_backtrace error_message error_class]
6
6
 
7
+ class ClearScope
8
+ def call(worker, msg, queue)
9
+ Rollbar.reset_notifier!
10
+
11
+ yield
12
+ end
13
+ end
14
+
7
15
  def self.handle_exception(msg_or_context, e)
8
16
  return if skip_report?(msg_or_context, e)
9
17
 
@@ -14,11 +22,13 @@ module Rollbar
14
22
  end
15
23
 
16
24
  def self.skip_report?(msg_or_context, e)
17
- msg_or_context.is_a?(Hash) && msg_or_context["retry"] &&
25
+ msg_or_context.is_a?(Hash) && msg_or_context["retry"] &&
18
26
  msg_or_context["retry_count"] && msg_or_context["retry_count"] < ::Rollbar.configuration.sidekiq_threshold
19
27
  end
20
28
 
21
29
  def call(worker, msg, queue)
30
+ Rollbar.reset_notifier!
31
+
22
32
  yield
23
33
  rescue Exception => e
24
34
  Rollbar::Sidekiq.handle_exception(msg, e)
@@ -28,12 +38,13 @@ module Rollbar
28
38
  end
29
39
 
30
40
  Sidekiq.configure_server do |config|
31
- if Sidekiq::VERSION < '3'
41
+ if Sidekiq::VERSION.split('.')[0].to_i < 3
32
42
  config.server_middleware do |chain|
33
43
  chain.add Rollbar::Sidekiq
34
44
  end
35
45
  else
36
- config.error_handlers << Proc.new do |e, context|
46
+ chain.add Rollbar::Sidekiq::ClearScope
47
+ config.error_handlers << proc do |e, context|
37
48
  Rollbar::Sidekiq.handle_exception(context, e)
38
49
  end
39
50
  end
@@ -1,3 +1,3 @@
1
1
  module Rollbar
2
- VERSION = "2.8.3"
2
+ VERSION = "2.9.0"
3
3
  end
data/rollbar.gemspec CHANGED
@@ -19,24 +19,5 @@ Gem::Specification.new do |gem|
19
19
  gem.require_paths = ["lib"]
20
20
  gem.version = Rollbar::VERSION
21
21
 
22
- gem.add_development_dependency 'rails', '>= 3.0.0'
23
- gem.add_development_dependency 'rspec-rails', '>= 2.14.0'
24
- gem.add_development_dependency 'database_cleaner', '~> 1.0.0'
25
- gem.add_development_dependency 'girl_friday', '>= 0.11.1'
26
-
27
- if RUBY_VERSION.start_with?('1.9')
28
- gem.add_development_dependency 'sucker_punch', '~> 1.0'
29
- elsif RUBY_VERSION.start_with?('2')
30
- gem.add_development_dependency 'sucker_punch', '~> 2.0'
31
- end
32
-
33
- gem.add_development_dependency 'sidekiq', '>= 2.13.0' if RUBY_VERSION != '1.8.7'
34
- gem.add_development_dependency 'genspec', '>= 0.2.8'
35
- gem.add_development_dependency 'sinatra'
36
- gem.add_development_dependency 'resque'
37
- gem.add_development_dependency 'delayed_job'
38
- gem.add_development_dependency 'rake', '< 11'
39
- gem.add_development_dependency 'redis'
40
- gem.add_runtime_dependency 'multi_json'
41
- gem.add_development_dependency 'oj', '~> 2.12.14' unless is_jruby
22
+ gem.add_runtime_dependency 'multi_json'
42
23
  end
@@ -394,7 +394,7 @@ describe HomeController do
394
394
  sent_params = Rollbar.last_report[:request][:params]['upload']
395
395
 
396
396
  expect(sent_params).to be_kind_of(Array)
397
- expect(sent_params).to have(2).items
397
+ expect(sent_params.size).to be(2)
398
398
  end
399
399
  end
400
400
  end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ begin
4
+ require 'genspec'
5
+ rescue LoadError
6
+ end
7
+
8
+ require 'generators/rollbar/rollbar_generator'
9
+
10
+ describe :rollbar do
11
+ context "with no arguments" do
12
+ it "outputs a help message" do
13
+ subject.should output(/You'll need to add an environment variable ROLLBAR_ACCESS_TOKEN with your access token/)
14
+ end
15
+
16
+ it "generates a Rollbar initializer with ENV" do
17
+ subject.should generate("config/initializers/rollbar.rb") { |content|
18
+ content.should =~ /config.access_token = ENV\['ROLLBAR_ACCESS_TOKEN'\]/
19
+ }
20
+ end
21
+ end
22
+
23
+ with_args 'aaaabbbbccccddddeeeeffff00001111' do
24
+ it "generates a Rollbar initializer with access token" do
25
+ subject.should generate("config/initializers/rollbar.rb") do |content|
26
+ content.should =~ /aaaabbbbccccddddeeeeffff00001111/
27
+ content.should =~ /config.access_token = 'aaaabbbbccccddddeeeeffff00001111'/
28
+ end
29
+ end
30
+ end
31
+ end if Rails::VERSION::STRING.start_with?('3.0')
@@ -1,24 +1,51 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe :rollbar do
4
- context "with no arguments" do
5
- it "outputs a help message" do
6
- subject.should output(/You'll need to add an environment variable ROLLBAR_ACCESS_TOKEN with your access token/)
3
+ begin
4
+ require 'generator_spec'
5
+ rescue LoadError
6
+ end
7
+
8
+ require 'generators/rollbar/rollbar_generator'
9
+
10
+ describe Rollbar::Generators::RollbarGenerator, :type => :generator do
11
+ destination File.expand_path('../../../tmp', __FILE__)
12
+
13
+ before { prepare_destination }
14
+
15
+ context 'with no arguments' do
16
+ before do
17
+ run_generator
7
18
  end
8
19
 
9
- it "generates a Rollbar initializer with ENV" do
10
- subject.should generate("config/initializers/rollbar.rb") { |content|
11
- content.should =~ /config.access_token = ENV\['ROLLBAR_ACCESS_TOKEN'\]/
20
+ it 'outputs a help message and generates Rollbar initializer with ENV' do
21
+ expect(destination_root).to have_structure {
22
+ directory 'config' do
23
+ directory 'initializers' do
24
+ file 'rollbar.rb' do
25
+ contains "config.access_token = ENV\['ROLLBAR_ACCESS_TOKEN'\]"
26
+ end
27
+ end
28
+ end
12
29
  }
13
30
  end
14
31
  end
15
32
 
16
- with_args 'aaaabbbbccccddddeeeeffff00001111' do
17
- it "generates a Rollbar initializer with access token" do
18
- subject.should generate("config/initializers/rollbar.rb") do |content|
19
- content.should =~ /aaaabbbbccccddddeeeeffff00001111/
20
- content.should =~ /config.access_token = 'aaaabbbbccccddddeeeeffff00001111'/
21
- end
33
+ context 'with arguments' do
34
+ before do
35
+ run_generator(%w(aaaabbbbccccddddeeeeffff00001111))
36
+ end
37
+
38
+ it 'generates a Rollbar initializer with access token' do
39
+ expect(destination_root).to have_structure {
40
+ directory 'config' do
41
+ directory 'initializers' do
42
+ file 'rollbar.rb' do
43
+ contains 'aaaabbbbccccddddeeeeffff00001111'
44
+ contains "config.access_token = 'aaaabbbbccccddddeeeeffff00001111'"
45
+ end
46
+ end
47
+ end
48
+ }
22
49
  end
23
50
  end
24
- end
51
+ end unless Rails::VERSION::STRING.start_with?('3.0')
@@ -18,6 +18,8 @@ describe Rollbar::ActiveJob do
18
18
  end
19
19
  end
20
20
 
21
+ before { reconfigure_notifier }
22
+
21
23
  let(:exception) { StandardError.new('oh no') }
22
24
  let(:job_id) { "123" }
23
25
 
@@ -28,6 +28,7 @@ END
28
28
  let(:content_type) { 'text/html' }
29
29
 
30
30
  before do
31
+ reconfigure_notifier
31
32
  allow(subject).to receive(:js_snippet).and_return(snippet)
32
33
  end
33
34
 
@@ -0,0 +1,114 @@
1
+ require 'spec_helper'
2
+ require 'rollbar/logger'
3
+
4
+ describe Rollbar::Logger do
5
+ describe '#add' do
6
+ context 'with severity under level' do
7
+ it 'returns true' do
8
+ result = subject.add(Logger::DEBUG, 'foo')
9
+
10
+ expect(result).to be_truthy
11
+ end
12
+ end
13
+
14
+ context 'with blank message' do
15
+ it 'returns true' do
16
+ result = subject.add(subject.level)
17
+
18
+ expect(result).to be_truthy
19
+ end
20
+ end
21
+
22
+ context 'with ERROR severity' do
23
+ let(:message) { 'foo' }
24
+
25
+ it 'calls Rollbar to send the message' do
26
+ expect_any_instance_of(Rollbar::Notifier).to receive(:log).with(:error, message)
27
+
28
+ subject.add(Logger::ERROR, message)
29
+ end
30
+ end
31
+
32
+ context 'with FATAL severity' do
33
+ let(:message) { 'foo' }
34
+
35
+ it 'calls Rollbar to send the message with critical level' do
36
+ expect_any_instance_of(Rollbar::Notifier).to receive(:log).with(:critical, message)
37
+
38
+ subject.add(Logger::FATAL, message)
39
+ end
40
+ end
41
+
42
+ context 'with UNKNOWN severity' do
43
+ let(:message) { 'foo' }
44
+
45
+ it 'calls Rollbar to send the message with error level' do
46
+ expect_any_instance_of(Rollbar::Notifier).to receive(:log).with(:error, message)
47
+
48
+ subject.add(Logger::UNKNOWN, message)
49
+ end
50
+ end
51
+
52
+ context 'with out of range severity' do
53
+ let(:message) { 'foo' }
54
+
55
+ it 'calls Rollbar to send the message with error level' do
56
+ expect_any_instance_of(Rollbar::Notifier).to receive(:log).with(:error, message)
57
+
58
+ subject.add(10, message)
59
+ end
60
+ end
61
+ end
62
+
63
+ describe '#<<' do
64
+ let(:message) { 'foo' }
65
+
66
+ it 'calls #error' do
67
+ expect(subject).to receive(:error).with(message)
68
+
69
+ subject << message
70
+ end
71
+ end
72
+
73
+ describe '#formatter=' do
74
+ it 'fails with FormatterNotSupported' do
75
+ expect do
76
+ subject.formatter = double
77
+ end.to raise_error(Rollbar::Logger::FormatterNotSupported)
78
+ end
79
+ end
80
+
81
+ describe '#formatter' do
82
+ it 'fails with FormatterNotSupported' do
83
+ expect do
84
+ subject.formatter
85
+ end.to raise_error(Rollbar::Logger::FormatterNotSupported)
86
+ end
87
+ end
88
+
89
+ describe '#datetime_format=' do
90
+ it 'fails with DatetimeFormatNotSupported' do
91
+ expect do
92
+ subject.datetime_format = double
93
+ end.to raise_error(Rollbar::Logger::DatetimeFormatNotSupported)
94
+ end
95
+ end
96
+
97
+ describe '#datetime_format' do
98
+ it 'fails with DatetimeFormatNotSupported' do
99
+ expect do
100
+ subject.datetime_format
101
+ end.to raise_error(Rollbar::Logger::DatetimeFormatNotSupported)
102
+ end
103
+ end
104
+
105
+ describe '#rollbar' do
106
+ it 'returns a Rollbar notifier with a logger pointing to /dev/null' do
107
+ notifier = subject.rollbar
108
+ logger = notifier.configuration.logger
109
+ logdev = logger.instance_eval { @logdev }
110
+
111
+ expect(logdev.filename).to be_eql('/dev/null')
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ unless RUBY_VERSION == '1.8.7'
4
+ require 'sidekiq'
5
+ require 'rollbar/sidekiq'
6
+ end
7
+
8
+ describe Rollbar::Sidekiq::ClearScope, :reconfigure_notifier => false do
9
+ describe '#call' do
10
+ let(:middleware_block) { proc{} }
11
+
12
+ it 'sends the error to Rollbar::Sidekiq.handle_exception' do
13
+ expect(Rollbar).to receive(:reset_notifier!)
14
+
15
+ subject.call(nil, nil, nil, &middleware_block)
16
+ end
17
+ end
18
+ end unless RUBY_VERSION == '1.8.7'
@@ -59,7 +59,7 @@ describe Rollbar::Sidekiq, :reconfigure_notifier => false do
59
59
 
60
60
  described_class.handle_exception(msg_or_context, exception)
61
61
  end
62
-
62
+
63
63
  it 'does not blow up and sends the error to rollbar if retry is true but there is no retry count' do
64
64
  allow(Rollbar).to receive(:scope).and_return(rollbar)
65
65
  expect(rollbar).to receive(:error)
@@ -70,7 +70,7 @@ describe Rollbar::Sidekiq, :reconfigure_notifier => false do
70
70
  described_class.handle_exception(msg_or_context, exception)
71
71
  }.to_not raise_error
72
72
  end
73
-
73
+
74
74
  end
75
75
  end
76
76
 
@@ -82,6 +82,7 @@ describe Rollbar::Sidekiq, :reconfigure_notifier => false do
82
82
  subject { Rollbar::Sidekiq.new }
83
83
 
84
84
  it 'sends the error to Rollbar::Sidekiq.handle_exception' do
85
+ expect(Rollbar).to receive(:reset_notifier!)
85
86
  expect(Rollbar::Sidekiq).to receive(:handle_exception).with(msg, exception)
86
87
 
87
88
  expect { subject.call(nil, msg, nil, &middleware_block) }.to raise_error(exception)
data/spec/rollbar_spec.rb CHANGED
@@ -678,13 +678,17 @@ describe Rollbar do
678
678
  end
679
679
 
680
680
  it 'should include project_gem_paths' do
681
+ gems = Gem::Specification.map(&:name)
682
+ project_gems = ['rails']
683
+ project_gems << 'rspec' if gems.include?('rspec')
684
+ project_gems << 'rspec-core' if gems.include?('rspec-core')
685
+
681
686
  notifier.configure do |config|
682
- config.project_gems = ['rails', 'rspec']
687
+ config.project_gems = project_gems
683
688
  end
684
689
 
685
690
  payload = notifier.send(:build_payload, 'info', 'message', nil, nil)
686
-
687
- expect(payload['data'][:project_package_paths].count).to eq 2
691
+ expect(payload['data'][:project_package_paths].count).to eq(project_gems.size)
688
692
  end
689
693
 
690
694
  it 'should include a code_version' do
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,24 @@
1
+ begin
2
+ require 'simplecov'
3
+ require 'codeclimate-test-reporter'
4
+
5
+ SimpleCov.start do
6
+ add_filter '/spec/'
7
+
8
+ formatter SimpleCov::Formatter::MultiFormatter.new([
9
+ SimpleCov::Formatter::HTMLFormatter,
10
+ CodeClimate::TestReporter::Formatter
11
+ ])
12
+ end
13
+ rescue LoadError
14
+ end
15
+
1
16
  require 'rubygems'
2
17
 
3
18
  ENV['RAILS_ENV'] = ENV['RACK_ENV'] = 'test'
4
19
  require File.expand_path('../dummyapp/config/environment', __FILE__)
5
20
  require 'rspec/rails'
6
21
  require 'database_cleaner'
7
- require 'genspec'
8
22
 
9
23
  namespace :dummy do
10
24
  load 'spec/dummyapp/Rakefile'
@@ -45,5 +59,6 @@ RSpec.configure do |config|
45
59
  DatabaseCleaner.clean
46
60
  end
47
61
 
62
+ config.infer_spec_type_from_file_location! if config.respond_to?(:infer_spec_type_from_file_location!)
48
63
  config.backtrace_exclusion_patterns = [/gems\/rspec-.*/]
49
64
  end
metadata CHANGED
@@ -1,183 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rollbar
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.3
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rollbar, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-09 00:00:00.000000000 Z
11
+ date: 2016-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rails
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 3.0.0
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: 3.0.0
27
- - !ruby/object:Gem::Dependency
28
- name: rspec-rails
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 2.14.0
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: 2.14.0
41
- - !ruby/object:Gem::Dependency
42
- name: database_cleaner
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 1.0.0
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 1.0.0
55
- - !ruby/object:Gem::Dependency
56
- name: girl_friday
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 0.11.1
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: 0.11.1
69
- - !ruby/object:Gem::Dependency
70
- name: sucker_punch
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '2.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '2.0'
83
- - !ruby/object:Gem::Dependency
84
- name: sidekiq
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 2.13.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 2.13.0
97
- - !ruby/object:Gem::Dependency
98
- name: genspec
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 0.2.8
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: 0.2.8
111
- - !ruby/object:Gem::Dependency
112
- name: sinatra
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: resque
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: delayed_job
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: rake
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "<"
158
- - !ruby/object:Gem::Version
159
- version: '11'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "<"
165
- - !ruby/object:Gem::Version
166
- version: '11'
167
- - !ruby/object:Gem::Dependency
168
- name: redis
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
13
  - !ruby/object:Gem::Dependency
182
14
  name: multi_json
183
15
  requirement: !ruby/object:Gem::Requirement
@@ -192,20 +24,6 @@ dependencies:
192
24
  - - ">="
193
25
  - !ruby/object:Gem::Version
194
26
  version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: oj
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: 2.12.14
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
208
- version: 2.12.14
209
27
  description: Easy and powerful exception tracking for Ruby
210
28
  email:
211
29
  - support@rollbar.com
@@ -214,6 +32,7 @@ executables:
214
32
  extensions: []
215
33
  extra_rdoc_files: []
216
34
  files:
35
+ - ".codeclimate.yml"
217
36
  - ".gitignore"
218
37
  - ".gitmodules"
219
38
  - ".rubocop.yml"
@@ -269,6 +88,7 @@ files:
269
88
  - lib/rollbar/json/oj.rb
270
89
  - lib/rollbar/language_support.rb
271
90
  - lib/rollbar/lazy_store.rb
91
+ - lib/rollbar/logger.rb
272
92
  - lib/rollbar/logger_proxy.rb
273
93
  - lib/rollbar/middleware/rack/builder.rb
274
94
  - lib/rollbar/middleware/rack/test_session.rb
@@ -361,6 +181,7 @@ files:
361
181
  - spec/fixtures/payloads/message.json
362
182
  - spec/fixtures/payloads/sample.trace.json
363
183
  - spec/fixtures/payloads/sample.trace_chain.json
184
+ - spec/generators/rollbar/rollbar_generator_rails30_spec.rb
364
185
  - spec/generators/rollbar/rollbar_generator_spec.rb
365
186
  - spec/requests/home_spec.rb
366
187
  - spec/rollbar/active_job_spec.rb
@@ -377,11 +198,13 @@ files:
377
198
  - spec/rollbar/json_spec.rb
378
199
  - spec/rollbar/lazy_store_spec.rb
379
200
  - spec/rollbar/logger_proxy_spec.rb
201
+ - spec/rollbar/logger_spec.rb
380
202
  - spec/rollbar/middleware/rack/builder_spec.rb
381
203
  - spec/rollbar/middleware/sinatra_spec.rb
382
204
  - spec/rollbar/rake_spec.rb
383
205
  - spec/rollbar/request_data_extractor_spec.rb
384
206
  - spec/rollbar/scrubbers/url_spec.rb
207
+ - spec/rollbar/sidekig/clear_scope_spec.rb
385
208
  - spec/rollbar/sidekiq_spec.rb
386
209
  - spec/rollbar/truncation/frames_strategy_spec.rb
387
210
  - spec/rollbar/truncation/min_body_strategy_spec.rb
@@ -488,6 +311,7 @@ test_files:
488
311
  - spec/fixtures/payloads/message.json
489
312
  - spec/fixtures/payloads/sample.trace.json
490
313
  - spec/fixtures/payloads/sample.trace_chain.json
314
+ - spec/generators/rollbar/rollbar_generator_rails30_spec.rb
491
315
  - spec/generators/rollbar/rollbar_generator_spec.rb
492
316
  - spec/requests/home_spec.rb
493
317
  - spec/rollbar/active_job_spec.rb
@@ -504,11 +328,13 @@ test_files:
504
328
  - spec/rollbar/json_spec.rb
505
329
  - spec/rollbar/lazy_store_spec.rb
506
330
  - spec/rollbar/logger_proxy_spec.rb
331
+ - spec/rollbar/logger_spec.rb
507
332
  - spec/rollbar/middleware/rack/builder_spec.rb
508
333
  - spec/rollbar/middleware/sinatra_spec.rb
509
334
  - spec/rollbar/rake_spec.rb
510
335
  - spec/rollbar/request_data_extractor_spec.rb
511
336
  - spec/rollbar/scrubbers/url_spec.rb
337
+ - spec/rollbar/sidekig/clear_scope_spec.rb
512
338
  - spec/rollbar/sidekiq_spec.rb
513
339
  - spec/rollbar/truncation/frames_strategy_spec.rb
514
340
  - spec/rollbar/truncation/min_body_strategy_spec.rb