rollbar 2.26.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.github/pull_request_template.md +34 -0
  3. data/.github/workflows/ci.yml +104 -0
  4. data/.rubocop.yml +52 -36
  5. data/Gemfile +25 -29
  6. data/README.md +32 -8
  7. data/data/rollbar.snippet.js +1 -1
  8. data/docs/configuration.md +7 -0
  9. data/gemfiles/rails30.gemfile +17 -35
  10. data/gemfiles/rails31.gemfile +20 -37
  11. data/gemfiles/rails32.gemfile +13 -31
  12. data/gemfiles/rails40.gemfile +12 -32
  13. data/gemfiles/rails41.gemfile +11 -31
  14. data/gemfiles/rails42.gemfile +11 -35
  15. data/gemfiles/rails50.gemfile +14 -32
  16. data/gemfiles/rails51.gemfile +13 -31
  17. data/gemfiles/rails52.gemfile +10 -19
  18. data/gemfiles/rails60.gemfile +10 -25
  19. data/gemfiles/rails61.gemfile +52 -0
  20. data/gemfiles/rails70.gemfile +52 -0
  21. data/lib/generators/rollbar/rollbar_generator.rb +18 -14
  22. data/lib/rails/rollbar_runner.rb +8 -19
  23. data/lib/rollbar/capistrano.rb +17 -9
  24. data/lib/rollbar/capistrano3.rb +8 -2
  25. data/lib/rollbar/capistrano_tasks.rb +44 -8
  26. data/lib/rollbar/configuration.rb +122 -88
  27. data/lib/rollbar/delay/shoryuken.rb +4 -3
  28. data/lib/rollbar/delay/sidekiq.rb +3 -1
  29. data/lib/rollbar/delay/sucker_punch.rb +1 -2
  30. data/lib/rollbar/delay/thread.rb +3 -2
  31. data/lib/rollbar/deploy.rb +6 -7
  32. data/lib/rollbar/encoding/encoder.rb +7 -3
  33. data/lib/rollbar/encoding.rb +2 -7
  34. data/lib/rollbar/exception_reporter.rb +17 -8
  35. data/lib/rollbar/item/backtrace.rb +10 -8
  36. data/lib/rollbar/item/frame.rb +6 -5
  37. data/lib/rollbar/item/locals.rb +5 -2
  38. data/lib/rollbar/item.rb +60 -38
  39. data/lib/rollbar/json.rb +1 -1
  40. data/lib/rollbar/language_support.rb +0 -6
  41. data/lib/rollbar/lazy_store.rb +3 -7
  42. data/lib/rollbar/logger.rb +2 -0
  43. data/lib/rollbar/logger_proxy.rb +3 -1
  44. data/lib/rollbar/middleware/js/json_value.rb +15 -5
  45. data/lib/rollbar/middleware/js.rb +59 -37
  46. data/lib/rollbar/middleware/rack/builder.rb +3 -3
  47. data/lib/rollbar/middleware/rack/test_session.rb +3 -3
  48. data/lib/rollbar/middleware/rack.rb +4 -4
  49. data/lib/rollbar/middleware/rails/rollbar.rb +9 -6
  50. data/lib/rollbar/middleware/rails/show_exceptions.rb +8 -4
  51. data/lib/rollbar/notifier/trace_with_bindings.rb +13 -3
  52. data/lib/rollbar/notifier.rb +180 -136
  53. data/lib/rollbar/plugin.rb +8 -8
  54. data/lib/rollbar/plugins/active_job.rb +15 -2
  55. data/lib/rollbar/plugins/delayed_job/plugin.rb +14 -3
  56. data/lib/rollbar/plugins/goalie.rb +27 -16
  57. data/lib/rollbar/plugins/rails/controller_methods.rb +18 -14
  58. data/lib/rollbar/plugins/rails/railtie30.rb +2 -1
  59. data/lib/rollbar/plugins/rails/railtie32.rb +2 -1
  60. data/lib/rollbar/plugins/rails/railtie_mixin.rb +2 -2
  61. data/lib/rollbar/plugins/rails.rb +5 -2
  62. data/lib/rollbar/plugins/rake.rb +2 -1
  63. data/lib/rollbar/plugins/sidekiq/plugin.rb +39 -21
  64. data/lib/rollbar/plugins/sidekiq.rb +1 -1
  65. data/lib/rollbar/plugins/thread.rb +8 -7
  66. data/lib/rollbar/plugins/validations.rb +3 -1
  67. data/lib/rollbar/rake_tasks.rb +1 -2
  68. data/lib/rollbar/request_data_extractor.rb +48 -19
  69. data/lib/rollbar/rollbar_test.rb +9 -118
  70. data/lib/rollbar/scrubbers/params.rb +13 -7
  71. data/lib/rollbar/scrubbers/url.rb +56 -17
  72. data/lib/rollbar/scrubbers.rb +1 -1
  73. data/lib/rollbar/truncation/remove_any_key_strategy.rb +4 -1
  74. data/lib/rollbar/truncation/remove_extra_strategy.rb +3 -1
  75. data/lib/rollbar/util/hash.rb +14 -7
  76. data/lib/rollbar/util/ip_anonymizer.rb +1 -1
  77. data/lib/rollbar/util.rb +19 -13
  78. data/lib/rollbar/version.rb +1 -1
  79. data/lib/rollbar.rb +12 -7
  80. data/lib/tasks/benchmark.rake +2 -1
  81. data/rollbar.gemspec +5 -3
  82. metadata +17 -12
  83. data/.travis.yml +0 -284
  84. data/lib/rollbar/encoding/legacy_encoder.rb +0 -20
  85. /data/lib/generators/rollbar/templates/{initializer.rb → initializer.erb} +0 -0
data/.travis.yml DELETED
@@ -1,284 +0,0 @@
1
- sudo: false
2
- dist: trusty
3
- services:
4
- - redis-server
5
- language: ruby
6
-
7
- rvm:
8
- - 1.9.3
9
- - 2.0.0
10
- - 2.1.0
11
- - 2.2.2
12
- - 2.3.8
13
- - 2.4.5
14
- - 2.5.3
15
- - 2.6.5
16
- - 2.7.0
17
- - rbx
18
- # Travis's own rvm installer is failing on JRuby builds, TODO: reenable when fixed.
19
- # - jruby-9.1.9.0
20
-
21
- #
22
- # # About legacy JRuby
23
- #
24
- # Legacy JRubies (jruby-18mode, jruby-19mode) have been disabled for some time by
25
- # listing all possible targets in either the exclude or allow_failures sections.
26
- # I have taken a look at getting them running, and have found that no valid
27
- # combination of dependencies is possible for Rails 3.0 and higher. It appears
28
- # Rails 2.2 is meant to work, though I haven't tried it.
29
- #
30
- # For Rails 3.0, it is possible to get a working bundle with all gem dependencies,
31
- # but the JDBC adapter gem needs an earlier version of ActiveSupport, and it will
32
- # fail at runtime.
33
- #
34
- # For Rails 3.1 and 3.2, Rack 1.3.x and higher require Ruby 2.x, while Rails 3.x will
35
- # not accept any 1.2.x version of Rack. Even if this could be resolved, one would
36
- # hit the above runtime issue amyway.
37
- #
38
- # # About current JRuby
39
- #
40
- # While current JRuby builds aim to be Ruby 2.5.x compatible, the JDBC adapter
41
- # gem is constrained to only Rails 5.0, 5.1 and 5.2 at this time. (Old versions
42
- # of the gem allow >= Rails 2.2, but in practice it will not work with Rails 3.0
43
- # and higher because of the ActiveSupport issue described above.) For as long as
44
- # the test suite relies on Rails and SqlLite, it is not possible to include
45
- # earlier Rails for JRuby.
46
-
47
- jdk:
48
- # These are the JDKs currently supported on Travis (Trusty - Ubuntu 14.04)
49
- - openjdk7
50
- - openjdk8
51
- - oraclejdk8
52
- - oraclejdk9
53
- gemfile:
54
- - gemfiles/rails30.gemfile
55
- - gemfiles/rails31.gemfile
56
- - gemfiles/rails32.gemfile
57
- - gemfiles/rails40.gemfile
58
- - gemfiles/rails41.gemfile
59
- - gemfiles/rails42.gemfile
60
- - gemfiles/rails50.gemfile
61
- - gemfiles/rails51.gemfile
62
- - gemfiles/rails52.gemfile
63
- - gemfiles/rails60.gemfile
64
- matrix:
65
- include: []
66
-
67
- allow_failures:
68
- - rvm: ruby-head
69
- - rvm: jruby-head
70
- # oraclejdk9 has a dependency issue that needs to be investigated
71
- - jdk: oraclejdk9
72
-
73
- exclude:
74
- # Don't run tests for non-jruby environments with the JDK.
75
- # NOTE: openjdk7 is missing from these exclusions so that Travis will run at least 1 build for the given rvm.
76
- - rvm: 1.9.3
77
- jdk: openjdk8
78
- - rvm: 1.9.3
79
- jdk: oraclejdk8
80
- - rvm: 1.9.3
81
- jdk: oraclejdk9
82
- - rvm: 2.0.0
83
- jdk: openjdk8
84
- - rvm: 2.0.0
85
- jdk: oraclejdk8
86
- - rvm: 2.0.0
87
- jdk: oraclejdk9
88
- - rvm: 2.1.0
89
- jdk: openjdk8
90
- - rvm: 2.1.0
91
- jdk: oraclejdk8
92
- - rvm: 2.1.0
93
- jdk: oraclejdk9
94
- - rvm: 2.2.2
95
- jdk: openjdk8
96
- - rvm: 2.2.2
97
- jdk: oraclejdk8
98
- - rvm: 2.2.2
99
- jdk: oraclejdk9
100
- - rvm: 2.3.8
101
- jdk: openjdk8
102
- - rvm: 2.3.8
103
- jdk: oraclejdk8
104
- - rvm: 2.3.8
105
- jdk: oraclejdk9
106
- - rvm: 2.4.5
107
- jdk: openjdk8
108
- - rvm: 2.4.5
109
- jdk: oraclejdk8
110
- - rvm: 2.4.5
111
- jdk: oraclejdk9
112
- - rvm: 2.5.3
113
- jdk: openjdk8
114
- - rvm: 2.5.3
115
- jdk: oraclejdk8
116
- - rvm: 2.5.3
117
- jdk: oraclejdk9
118
- - rvm: 2.6.5
119
- jdk: openjdk8
120
- - rvm: 2.6.5
121
- jdk: oraclejdk8
122
- - rvm: 2.6.5
123
- jdk: oraclejdk9
124
- - rvm: 2.7.0
125
- jdk: openjdk8
126
- - rvm: 2.7.0
127
- jdk: oraclejdk8
128
- - rvm: 2.7.0
129
- jdk: oraclejdk9
130
-
131
- - rvm: ruby-head
132
- jdk: openjdk8
133
- - rvm: ruby-head
134
- jdk: oraclejdk8
135
- - rvm: ruby-head
136
- jdk: oraclejdk9
137
- - rvm: rbx
138
- jdk: openjdk8
139
- - rvm: rbx
140
- jdk: oraclejdk8
141
- - rvm: rbx
142
- jdk: oraclejdk9
143
-
144
- # Rails 6.x requires Ruby 2.5.0 or higher
145
- - rvm: 2.2.2
146
- gemfile: gemfiles/rails60.gemfile
147
- - rvm: 2.3.8
148
- gemfile: gemfiles/rails60.gemfile
149
- - rvm: 2.4.5
150
- gemfile: gemfiles/rails60.gemfile
151
- # Rails 5.x requires Ruby 2.2.2 or higher
152
- - rvm: 1.9.3
153
- gemfile: gemfiles/rails50.gemfile
154
- - rvm: 1.9.3
155
- gemfile: gemfiles/rails51.gemfile
156
- - rvm: 1.9.3
157
- gemfile: gemfiles/rails52.gemfile
158
- - rvm: 1.9.3
159
- gemfile: gemfiles/rails60.gemfile
160
- # Rails 5.x requires Ruby 2.2.2 or higher
161
- - rvm: 2.0.0
162
- gemfile: gemfiles/rails50.gemfile
163
- - rvm: 2.0.0
164
- gemfile: gemfiles/rails51.gemfile
165
- - rvm: 2.0.0
166
- gemfile: gemfiles/rails52.gemfile
167
- - rvm: 2.0.0
168
- gemfile: gemfiles/rails60.gemfile
169
- # Rails 5.x requires Ruby 2.2.2 or higher
170
- - rvm: 2.1.0
171
- gemfile: gemfiles/rails50.gemfile
172
- - rvm: 2.1.0
173
- gemfile: gemfiles/rails51.gemfile
174
- - rvm: 2.1.0
175
- gemfile: gemfiles/rails52.gemfile
176
- - rvm: 2.1.0
177
- gemfile: gemfiles/rails60.gemfile
178
- # MRI 2.2.2 supports Rails 3.2.x and higher, except Rails 5.2.4 and higher*
179
- # * ActionDispatch 5.2.4 uses Ruby 3.x safe navigation operator.
180
- - rvm: 2.2.2
181
- gemfile: gemfiles/rails30.gemfile
182
- - rvm: 2.2.2
183
- gemfile: gemfiles/rails31.gemfile
184
- - rvm: 2.2.2
185
- gemfile: gemfiles/rails52.gemfile
186
- # MRI 2.3.x supports Rails 4.0.x and higher
187
- - rvm: 2.3.8
188
- gemfile: gemfiles/rails30.gemfile
189
- - rvm: 2.3.8
190
- gemfile: gemfiles/rails31.gemfile
191
- - rvm: 2.3.8
192
- gemfile: gemfiles/rails32.gemfile
193
- - rvm: 2.3.8
194
- gemfile: gemfiles/rails40.gemfile
195
- - rvm: 2.3.8
196
- gemfile: gemfiles/rails41.gemfile
197
- # MRI 2.4.x and higher (e.g. 2.5.x, 2.6.x, etc) supports Rails 4.2.8 and higher
198
- # Rails lower than 4.2.8 is incompatible with Ruby 2.4 Integer class
199
- - rvm: 2.4.5
200
- gemfile: gemfiles/rails30.gemfile
201
- - rvm: 2.4.5
202
- gemfile: gemfiles/rails31.gemfile
203
- - rvm: 2.4.5
204
- gemfile: gemfiles/rails32.gemfile
205
- - rvm: 2.4.5
206
- gemfile: gemfiles/rails40.gemfile
207
- - rvm: 2.4.5
208
- gemfile: gemfiles/rails41.gemfile
209
- - rvm: 2.5.3
210
- gemfile: gemfiles/rails30.gemfile
211
- - rvm: 2.5.3
212
- gemfile: gemfiles/rails31.gemfile
213
- - rvm: 2.5.3
214
- gemfile: gemfiles/rails32.gemfile
215
- - rvm: 2.5.3
216
- gemfile: gemfiles/rails40.gemfile
217
- - rvm: 2.5.3
218
- gemfile: gemfiles/rails41.gemfile
219
- - rvm: 2.6.5
220
- gemfile: gemfiles/rails30.gemfile
221
- - rvm: 2.6.5
222
- gemfile: gemfiles/rails31.gemfile
223
- - rvm: 2.6.5
224
- gemfile: gemfiles/rails32.gemfile
225
- - rvm: 2.6.5
226
- gemfile: gemfiles/rails40.gemfile
227
- - rvm: 2.6.5
228
- gemfile: gemfiles/rails41.gemfile
229
- - rvm: 2.6.5
230
- gemfile: gemfiles/rails42.gemfile
231
- # Rails 6.x tries to be compatible with Ruby 2.7, though
232
- # it still throws a lot of warnings. No point testing earlier
233
- # Rails with Ruby 2.7.
234
- - rvm: 2.7.0
235
- gemfile: gemfiles/rails30.gemfile
236
- - rvm: 2.7.0
237
- gemfile: gemfiles/rails31.gemfile
238
- - rvm: 2.7.0
239
- gemfile: gemfiles/rails32.gemfile
240
- - rvm: 2.7.0
241
- gemfile: gemfiles/rails40.gemfile
242
- - rvm: 2.7.0
243
- gemfile: gemfiles/rails41.gemfile
244
- - rvm: 2.7.0
245
- gemfile: gemfiles/rails42.gemfile
246
- - rvm: 2.7.0
247
- gemfile: gemfiles/rails50.gemfile
248
- - rvm: 2.7.0
249
- gemfile: gemfiles/rails51.gemfile
250
- - rvm: 2.7.0
251
- gemfile: gemfiles/rails52.gemfile
252
- # JRuby JDBC Adapter is only compatible with Rails >= 5.x
253
- - rvm: jruby-9.1.9.0
254
- gemfile: gemfiles/rails30.gemfile
255
- - rvm: jruby-9.1.9.0
256
- gemfile: gemfiles/rails31.gemfile
257
- - rvm: jruby-9.1.9.0
258
- gemfile: gemfiles/rails32.gemfile
259
- - rvm: jruby-9.1.9.0
260
- gemfile: gemfiles/rails40.gemfile
261
- - rvm: jruby-9.1.9.0
262
- gemfile: gemfiles/rails41.gemfile
263
- - rvm: jruby-9.1.9.0
264
- gemfile: gemfiles/rails42.gemfile
265
- - rvm: rbx
266
- gemfile: gemfiles/rails30.gemfile
267
- - rvm: rbx
268
- gemfile: gemfiles/rails31.gemfile
269
- - rvm: rbx
270
- gemfile: gemfiles/rails32.gemfile
271
- - rvm: rbx
272
- gemfile: gemfiles/rails40.gemfile
273
- - rvm: rbx
274
- gemfile: gemfiles/rails41.gemfile
275
- - rvm: rbx
276
- gemfile: gemfiles/rails42.gemfile
277
- - rvm: rbx
278
- gemfile: gemfiles/rails50.gemfile
279
- - rvm: rbx
280
- gemfile: gemfiles/rails51.gemfile
281
- - rvm: rbx
282
- gemfile: gemfiles/rails52.gemfile
283
- - rvm: rbx
284
- gemfile: gemfiles/rails60.gemfile
@@ -1,20 +0,0 @@
1
- require 'iconv'
2
-
3
- module Rollbar
4
- module Encoding
5
- class LegacyEncoder
6
- attr_accessor :object
7
-
8
- def initialize(object)
9
- @object = object
10
- end
11
-
12
- def encode
13
- value = object.to_s
14
- encoded_value = ::Iconv.conv('UTF-8//IGNORE', 'UTF-8', value)
15
-
16
- object.is_a?(Symbol) ? encoded_value.to_sym : encoded_value
17
- end
18
- end
19
- end
20
- end