rollbar 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +81 -34
- data/Gemfile +8 -8
- data/gemfiles/rails30.gemfile +10 -12
- data/gemfiles/rails31.gemfile +10 -12
- data/gemfiles/rails32.gemfile +3 -5
- data/gemfiles/rails40.gemfile +2 -4
- data/gemfiles/rails41.gemfile +2 -5
- data/gemfiles/rails42.gemfile +4 -9
- data/gemfiles/rails50.gemfile +7 -9
- data/gemfiles/rails51.gemfile +6 -8
- data/gemfiles/rails52.gemfile +5 -5
- data/gemfiles/rails60.gemfile +3 -4
- data/gemfiles/rails61.gemfile +3 -3
- data/lib/generators/rollbar/rollbar_generator.rb +18 -14
- data/lib/generators/rollbar/templates/{initializer.rb → initializer.erb} +0 -0
- data/lib/rails/rollbar_runner.rb +12 -5
- data/lib/rollbar/capistrano.rb +16 -8
- data/lib/rollbar/capistrano3.rb +8 -2
- data/lib/rollbar/capistrano_tasks.rb +16 -7
- data/lib/rollbar/configuration.rb +113 -91
- data/lib/rollbar/delay/shoryuken.rb +4 -3
- data/lib/rollbar/delay/sidekiq.rb +3 -1
- data/lib/rollbar/delay/sucker_punch.rb +1 -2
- data/lib/rollbar/delay/thread.rb +3 -2
- data/lib/rollbar/deploy.rb +6 -7
- data/lib/rollbar/encoding/encoder.rb +7 -3
- data/lib/rollbar/exception_reporter.rb +17 -8
- data/lib/rollbar/item/backtrace.rb +10 -8
- data/lib/rollbar/item/frame.rb +6 -5
- data/lib/rollbar/item/locals.rb +3 -1
- data/lib/rollbar/item.rb +47 -38
- data/lib/rollbar/json.rb +1 -1
- data/lib/rollbar/lazy_store.rb +1 -3
- data/lib/rollbar/logger.rb +2 -0
- data/lib/rollbar/logger_proxy.rb +3 -1
- data/lib/rollbar/middleware/js.rb +32 -20
- data/lib/rollbar/middleware/rack/builder.rb +3 -3
- data/lib/rollbar/middleware/rack/test_session.rb +3 -3
- data/lib/rollbar/middleware/rack.rb +4 -4
- data/lib/rollbar/middleware/rails/rollbar.rb +9 -6
- data/lib/rollbar/middleware/rails/show_exceptions.rb +8 -4
- data/lib/rollbar/notifier/trace_with_bindings.rb +4 -2
- data/lib/rollbar/notifier.rb +179 -133
- data/lib/rollbar/plugin.rb +8 -8
- data/lib/rollbar/plugins/active_job.rb +11 -2
- data/lib/rollbar/plugins/delayed_job/plugin.rb +10 -3
- data/lib/rollbar/plugins/goalie.rb +27 -16
- data/lib/rollbar/plugins/rails/controller_methods.rb +18 -14
- data/lib/rollbar/plugins/rails/railtie30.rb +2 -1
- data/lib/rollbar/plugins/rails/railtie32.rb +2 -1
- data/lib/rollbar/plugins/rails/railtie_mixin.rb +2 -2
- data/lib/rollbar/plugins/rails.rb +5 -2
- data/lib/rollbar/plugins/rake.rb +2 -1
- data/lib/rollbar/plugins/sidekiq/plugin.rb +5 -5
- data/lib/rollbar/plugins/thread.rb +1 -1
- data/lib/rollbar/plugins/validations.rb +3 -1
- data/lib/rollbar/rake_tasks.rb +0 -1
- data/lib/rollbar/request_data_extractor.rb +38 -17
- data/lib/rollbar/rollbar_test.rb +3 -1
- data/lib/rollbar/scrubbers/params.rb +13 -7
- data/lib/rollbar/scrubbers/url.rb +37 -17
- data/lib/rollbar/scrubbers.rb +1 -1
- data/lib/rollbar/truncation/remove_any_key_strategy.rb +4 -1
- data/lib/rollbar/truncation/remove_extra_strategy.rb +3 -1
- data/lib/rollbar/util/hash.rb +14 -7
- data/lib/rollbar/util/ip_anonymizer.rb +1 -1
- data/lib/rollbar/util.rb +19 -13
- data/lib/rollbar/version.rb +1 -1
- data/lib/rollbar.rb +12 -7
- data/lib/tasks/benchmark.rake +2 -1
- data/rollbar.gemspec +3 -1
- metadata +3 -3
data/lib/rollbar/util.rb
CHANGED
@@ -7,9 +7,10 @@ module Rollbar
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def self.iterate_and_update(obj, block, seen = {})
|
10
|
-
|
10
|
+
seen.compare_by_identity
|
11
|
+
return if obj.frozen? || seen[obj]
|
11
12
|
|
12
|
-
seen[obj
|
13
|
+
seen[obj] = true
|
13
14
|
|
14
15
|
if obj.is_a?(Array)
|
15
16
|
iterate_and_update_array(obj, block, seen)
|
@@ -29,7 +30,7 @@ module Rollbar
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def self.iterate_and_update_hash(obj, block, seen)
|
32
|
-
obj.keys.each do |k|
|
33
|
+
obj.keys.each do |k| # rubocop:disable Style/HashEachMethods
|
33
34
|
v = obj[k]
|
34
35
|
new_key = block.call(k)
|
35
36
|
|
@@ -47,18 +48,21 @@ module Rollbar
|
|
47
48
|
end
|
48
49
|
|
49
50
|
def self.deep_copy(obj, copied = {})
|
51
|
+
copied.compare_by_identity
|
52
|
+
|
50
53
|
# if we've already made a copy, return it.
|
51
|
-
return copied[obj
|
54
|
+
return copied[obj] if copied[obj]
|
52
55
|
|
53
56
|
result = clone_obj(obj)
|
54
57
|
|
55
58
|
# Memoize the cloned object before recursive calls to #deep_copy below.
|
56
59
|
# This is the point of doing the work in two steps.
|
57
|
-
copied[obj
|
60
|
+
copied[obj] = result
|
58
61
|
|
59
|
-
|
62
|
+
case obj
|
63
|
+
when ::Hash
|
60
64
|
obj.each { |k, v| result[k] = deep_copy(v, copied) }
|
61
|
-
|
65
|
+
when Array
|
62
66
|
obj.each { |v| result << deep_copy(v, copied) }
|
63
67
|
end
|
64
68
|
|
@@ -66,9 +70,10 @@ module Rollbar
|
|
66
70
|
end
|
67
71
|
|
68
72
|
def self.clone_obj(obj)
|
69
|
-
|
73
|
+
case obj
|
74
|
+
when ::Hash
|
70
75
|
obj.dup
|
71
|
-
|
76
|
+
when Array
|
72
77
|
obj.dup.clear
|
73
78
|
else
|
74
79
|
obj
|
@@ -78,12 +83,13 @@ module Rollbar
|
|
78
83
|
def self.deep_merge(hash1, hash2, merged = {})
|
79
84
|
hash1 ||= {}
|
80
85
|
hash2 ||= {}
|
86
|
+
merged.compare_by_identity
|
81
87
|
|
82
88
|
# If we've already merged these two objects, return hash1 now.
|
83
|
-
return hash1 if merged[hash1
|
89
|
+
return hash1 if merged[hash1] && merged[hash1].include?(hash2.object_id)
|
84
90
|
|
85
|
-
merged[hash1
|
86
|
-
merged[hash1
|
91
|
+
merged[hash1] ||= []
|
92
|
+
merged[hash1] << hash2.object_id
|
87
93
|
|
88
94
|
perform_deep_merge(hash1, hash2, merged)
|
89
95
|
|
@@ -121,7 +127,7 @@ module Rollbar
|
|
121
127
|
end
|
122
128
|
|
123
129
|
def self.count_method_in_stack(method_symbol, file_path = '')
|
124
|
-
caller.grep(/#{file_path}.*#{method_symbol
|
130
|
+
caller.grep(/#{file_path}.*#{method_symbol}/).count
|
125
131
|
end
|
126
132
|
|
127
133
|
def self.method_in_stack(method_symbol, file_path = '')
|
data/lib/rollbar/version.rb
CHANGED
data/lib/rollbar.rb
CHANGED
@@ -8,6 +8,7 @@ require 'forwardable'
|
|
8
8
|
begin
|
9
9
|
require 'securerandom'
|
10
10
|
rescue LoadError
|
11
|
+
# Skip loading
|
11
12
|
end
|
12
13
|
|
13
14
|
require 'rollbar/version'
|
@@ -31,8 +32,7 @@ module Rollbar
|
|
31
32
|
|
32
33
|
def_delegators :notifier, *PUBLIC_NOTIFIER_METHODS
|
33
34
|
|
34
|
-
attr_writer :plugins
|
35
|
-
attr_writer :root_notifier
|
35
|
+
attr_writer :plugins, :root_notifier
|
36
36
|
|
37
37
|
def notifier
|
38
38
|
# Use the global instance @root_notifier so we don't fall
|
@@ -160,8 +160,10 @@ module Rollbar
|
|
160
160
|
|
161
161
|
# Backwards compatibility methods
|
162
162
|
|
163
|
-
def report_exception(exception, request_data = nil, person_data = nil,
|
164
|
-
|
163
|
+
def report_exception(exception, request_data = nil, person_data = nil,
|
164
|
+
level = 'error')
|
165
|
+
Kernel.warn('[DEPRECATION] Rollbar.report_exception has been deprecated, ' \
|
166
|
+
'please use log() or one of the level functions')
|
165
167
|
|
166
168
|
scope = {}
|
167
169
|
scope[:request] = request_data if request_data
|
@@ -173,13 +175,16 @@ module Rollbar
|
|
173
175
|
end
|
174
176
|
|
175
177
|
def report_message(message, level = 'info', extra_data = nil)
|
176
|
-
Kernel.warn('[DEPRECATION] Rollbar.report_message has been deprecated,
|
178
|
+
Kernel.warn('[DEPRECATION] Rollbar.report_message has been deprecated, ' \
|
179
|
+
'please use log() or one of the level functions')
|
177
180
|
|
178
181
|
Rollbar.notifier.log(level, message, extra_data)
|
179
182
|
end
|
180
183
|
|
181
|
-
def report_message_with_request(message, level = 'info', request_data = nil,
|
182
|
-
|
184
|
+
def report_message_with_request(message, level = 'info', request_data = nil,
|
185
|
+
person_data = nil, extra_data = nil)
|
186
|
+
Kernel.warn('[DEPRECATION] Rollbar.report_message_with_request has been ' \
|
187
|
+
'deprecated, please use log() or one of the level functions')
|
183
188
|
|
184
189
|
scope = {}
|
185
190
|
scope[:request] = request_data if request_data
|
data/lib/tasks/benchmark.rake
CHANGED
@@ -77,7 +77,8 @@ class BenchmarkTraceWithBindings # :nodoc:
|
|
77
77
|
def trace_point # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
78
78
|
return unless defined?(TracePoint)
|
79
79
|
|
80
|
-
@trace_point ||= TracePoint.new(:call, :return, :b_call, :b_return, :c_call,
|
80
|
+
@trace_point ||= TracePoint.new(:call, :return, :b_call, :b_return, :c_call,
|
81
|
+
:c_return, :raise) do |tp|
|
81
82
|
next if options['hook_only']
|
82
83
|
|
83
84
|
case tp.event
|
data/rollbar.gemspec
CHANGED
@@ -12,7 +12,9 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.summary = 'Reports exceptions to Rollbar'
|
13
13
|
gem.homepage = 'https://rollbar.com'
|
14
14
|
gem.license = 'MIT'
|
15
|
-
gem.files = `git ls-files -z`.split("\x0").reject
|
15
|
+
gem.files = `git ls-files -z`.split("\x0").reject do |f|
|
16
|
+
f.match(%r{^(test|spec|features)/})
|
17
|
+
end
|
16
18
|
gem.files += ['spec/support/rollbar_api.rb'] # useful helper for app spec/tests.
|
17
19
|
gem.name = 'rollbar'
|
18
20
|
gem.require_paths = ['lib']
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rollbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.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: 2021-
|
11
|
+
date: 2021-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Easy and powerful exception tracking for Ruby
|
14
14
|
email:
|
@@ -49,7 +49,7 @@ files:
|
|
49
49
|
- gemfiles/rails60.gemfile
|
50
50
|
- gemfiles/rails61.gemfile
|
51
51
|
- lib/generators/rollbar/rollbar_generator.rb
|
52
|
-
- lib/generators/rollbar/templates/initializer.
|
52
|
+
- lib/generators/rollbar/templates/initializer.erb
|
53
53
|
- lib/rails/rollbar_runner.rb
|
54
54
|
- lib/rollbar.rb
|
55
55
|
- lib/rollbar/capistrano.rb
|