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 +4 -4
- data/.codeclimate.yml +18 -0
- data/CHANGELOG.md +19 -0
- data/Gemfile +21 -2
- data/README.md +23 -4
- data/gemfiles/rails30.gemfile +25 -2
- data/gemfiles/rails31.gemfile +26 -1
- data/gemfiles/rails32.gemfile +27 -1
- data/gemfiles/rails40.gemfile +27 -1
- data/gemfiles/rails41.gemfile +27 -1
- data/gemfiles/rails42.gemfile +27 -1
- data/lib/generators/rollbar/rollbar_generator.rb +1 -0
- data/lib/rollbar/configuration.rb +1 -1
- data/lib/rollbar/delay/thread.rb +59 -3
- data/lib/rollbar/logger.rb +81 -0
- data/lib/rollbar/rake_tasks.rb +1 -0
- data/lib/rollbar/sidekiq.rb +14 -3
- data/lib/rollbar/version.rb +1 -1
- data/rollbar.gemspec +1 -20
- data/spec/controllers/home_controller_spec.rb +1 -1
- data/spec/generators/rollbar/rollbar_generator_rails30_spec.rb +31 -0
- data/spec/generators/rollbar/rollbar_generator_spec.rb +41 -14
- data/spec/rollbar/active_job_spec.rb +2 -0
- data/spec/rollbar/js/middleware_spec.rb +1 -0
- data/spec/rollbar/logger_spec.rb +114 -0
- data/spec/rollbar/sidekig/clear_scope_spec.rb +18 -0
- data/spec/rollbar/sidekiq_spec.rb +3 -2
- data/spec/rollbar_spec.rb +7 -3
- data/spec/spec_helper.rb +16 -1
- metadata +10 -184
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3dc9f3d80ba20b90a83809caefd61cbb724d5f99
|
4
|
+
data.tar.gz: a5bb67e2c58339159d475f23f4f6055db837cb46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc4d5c761209f259b2e5761f4cd5843d37083d6996ef758ab1504f02db3d82416c34d61dbd53bdd863caaec47624dec1924a02c6f9fc0d778cd649737b6d16f5
|
7
|
+
data.tar.gz: be9b1342ca1345c1133f0ff7d2144a7a3f4b82431d15958b70eea419f402acc1cfa112808fa09beb07d11e5b5916b074d9163f298aa1fe918d1e41b90fb27197
|
data/.codeclimate.yml
ADDED
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 '
|
16
|
+
gem 'rspec-rails', '~> 3.4'
|
17
|
+
gem 'rake'
|
15
18
|
|
16
|
-
|
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 [](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'
|
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.
|
491
|
+
config.transform << handler
|
492
492
|
end
|
493
493
|
```
|
494
494
|
|
@@ -533,7 +533,7 @@ Rollbar.silenced {
|
|
533
533
|
}
|
534
534
|
```
|
535
535
|
|
536
|
-
|
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```:
|
data/gemfiles/rails30.gemfile
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
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 => '../'
|
data/gemfiles/rails31.gemfile
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
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 => "../"
|
data/gemfiles/rails32.gemfile
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
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 => "../"
|
data/gemfiles/rails40.gemfile
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
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 => "../"
|
data/gemfiles/rails41.gemfile
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
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 => "../"
|
data/gemfiles/rails42.gemfile
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
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 => "../"
|
@@ -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
|
data/lib/rollbar/delay/thread.rb
CHANGED
@@ -1,9 +1,65 @@
|
|
1
|
+
require 'thread'
|
2
|
+
require 'timeout'
|
3
|
+
|
1
4
|
module Rollbar
|
2
5
|
module Delay
|
3
6
|
class Thread
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
data/lib/rollbar/rake_tasks.rb
CHANGED
data/lib/rollbar/sidekiq.rb
CHANGED
@@ -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 <
|
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
|
-
|
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
|
data/lib/rollbar/version.rb
CHANGED
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.
|
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
|
@@ -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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
10
|
-
|
11
|
-
|
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
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
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')
|
@@ -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 =
|
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.
|
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-
|
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
|