rollbar 2.19.1 → 2.27.1
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 +5 -5
- data/.github/pull_request_template.md +25 -0
- data/.rubocop.yml +168 -0
- data/.travis.yml +63 -34
- data/Appraisals +10 -10
- data/Gemfile +35 -14
- data/README.md +5 -2
- data/Rakefile +0 -0
- data/data/rollbar.snippet.js +1 -1
- data/docs/configuration.md +17 -0
- data/gemfiles/rails30.gemfile +10 -10
- data/gemfiles/rails31.gemfile +10 -9
- data/gemfiles/rails32.gemfile +10 -9
- data/gemfiles/rails40.gemfile +10 -9
- data/gemfiles/rails41.gemfile +10 -9
- data/gemfiles/rails42.gemfile +12 -9
- data/gemfiles/rails50.gemfile +21 -14
- data/gemfiles/rails51.gemfile +21 -14
- data/gemfiles/rails52.gemfile +15 -12
- data/gemfiles/rails60.gemfile +67 -0
- data/lib/generators/rollbar/rollbar_generator.rb +1 -1
- data/lib/rails/rollbar_runner.rb +4 -2
- data/lib/rollbar/capistrano.rb +1 -1
- data/lib/rollbar/capistrano3.rb +6 -3
- data/lib/rollbar/capistrano_tasks.rb +29 -21
- data/lib/rollbar/configuration.rb +86 -16
- data/lib/rollbar/delay/girl_friday.rb +4 -8
- data/lib/rollbar/delay/resque.rb +3 -6
- data/lib/rollbar/delay/sidekiq.rb +4 -10
- data/lib/rollbar/delay/sucker_punch.rb +16 -19
- data/lib/rollbar/delay/thread.rb +16 -2
- data/lib/rollbar/deploy.rb +52 -29
- data/lib/rollbar/encoding/encoder.rb +17 -10
- data/lib/rollbar/exception_reporter.rb +19 -5
- data/lib/rollbar/item/backtrace.rb +13 -3
- data/lib/rollbar/item/frame.rb +9 -1
- data/lib/rollbar/item/locals.rb +100 -0
- data/lib/rollbar/item.rb +56 -17
- data/lib/rollbar/json.rb +6 -51
- data/lib/rollbar/language_support.rb +4 -20
- data/lib/rollbar/lazy_store.rb +5 -5
- data/lib/rollbar/logger.rb +1 -0
- data/lib/rollbar/logger_proxy.rb +6 -2
- data/lib/rollbar/middleware/js.rb +28 -18
- data/lib/rollbar/middleware/rack.rb +4 -1
- data/lib/rollbar/middleware/rails/rollbar.rb +10 -1
- data/lib/rollbar/notifier/trace_with_bindings.rb +65 -0
- data/lib/rollbar/notifier.rb +225 -89
- data/lib/rollbar/plugin.rb +54 -6
- data/lib/rollbar/plugins/active_job.rb +6 -2
- data/lib/rollbar/plugins/basic_socket.rb +21 -6
- data/lib/rollbar/plugins/delayed_job/job_data.rb +3 -3
- data/lib/rollbar/plugins/delayed_job/plugin.rb +13 -3
- data/lib/rollbar/plugins/error_context.rb +11 -0
- data/lib/rollbar/plugins/goalie.rb +11 -3
- data/lib/rollbar/plugins/rails/controller_methods.rb +15 -3
- data/lib/rollbar/plugins/rake.rb +2 -2
- data/lib/rollbar/plugins/sidekiq/plugin.rb +5 -4
- data/lib/rollbar/plugins.rb +7 -1
- data/lib/rollbar/rake_tasks.rb +4 -148
- data/lib/rollbar/request_data_extractor.rb +31 -21
- data/lib/rollbar/rollbar_test.rb +36 -0
- data/lib/rollbar/scrubbers/params.rb +19 -18
- data/lib/rollbar/scrubbers/url.rb +18 -9
- data/lib/rollbar/scrubbers.rb +3 -3
- data/lib/rollbar/truncation/frames_strategy.rb +1 -1
- data/lib/rollbar/truncation/min_body_strategy.rb +2 -3
- data/lib/rollbar/truncation/mixin.rb +1 -1
- data/lib/rollbar/truncation/remove_any_key_strategy.rb +123 -0
- data/lib/rollbar/truncation/remove_extra_strategy.rb +35 -0
- data/lib/rollbar/truncation/remove_request_strategy.rb +21 -0
- data/lib/rollbar/truncation/strings_strategy.rb +6 -5
- data/lib/rollbar/truncation.rb +9 -2
- data/lib/rollbar/util/hash.rb +15 -0
- data/lib/rollbar/util/ip_anonymizer.rb +8 -7
- data/lib/rollbar/util/ip_obfuscator.rb +1 -1
- data/lib/rollbar/util.rb +6 -2
- data/lib/rollbar/version.rb +1 -1
- data/lib/rollbar.rb +2 -3
- data/lib/tasks/benchmark.rake +103 -0
- data/rollbar.gemspec +13 -5
- data/spec/support/rollbar_api.rb +67 -0
- metadata +21 -23
- data/gemfiles/ruby_1_8_and_1_9_2.gemfile +0 -49
- data/lib/rollbar/json/default.rb +0 -11
- data/lib/rollbar/json/oj.rb +0 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 93750693cd5d598ffbfffc97a6fa9d6849b883ff0c6e1fbd2d9f1bc12fe231ce
|
|
4
|
+
data.tar.gz: f6cb9387ee9f3d4555bdcc103d6cd5abc899392335a369ff7fe6201bceb8822d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4028d695ef765ebcc47db502b239153933fd9bab5161aaf6765d8a264c62ab4c60d40fd2bc93985f8eb4eff1838cb749fee6df80ed6baac1af05ecda01b2911c
|
|
7
|
+
data.tar.gz: b9638cb6df1a5647d53cd115fbe708058713d4ea97647c552a82f33b38cb86f11fd4c0b62e9ed83f7f0aa7a732b80fcdaca0d0e04d771f7d89252729aacd8700
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
## Description of the change
|
|
2
|
+
|
|
3
|
+
> Description here
|
|
4
|
+
## Type of change
|
|
5
|
+
- [ ] Bug fix (non-breaking change that fixes an issue)
|
|
6
|
+
- [ ] New feature (non-breaking change that adds functionality)
|
|
7
|
+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
|
8
|
+
|
|
9
|
+
## Related issues
|
|
10
|
+
|
|
11
|
+
> Fix [#1]()
|
|
12
|
+
## Checklists
|
|
13
|
+
|
|
14
|
+
### Development
|
|
15
|
+
|
|
16
|
+
- [ ] Lint rules pass locally
|
|
17
|
+
- [ ] The code changed/added as part of this pull request has been covered with tests
|
|
18
|
+
- [ ] All tests related to the changed code pass in development
|
|
19
|
+
|
|
20
|
+
### Code review
|
|
21
|
+
|
|
22
|
+
- [ ] This pull request has a descriptive title and information useful to a reviewer. There may be a screenshot or screencast attached
|
|
23
|
+
- [ ] "Ready for review" label attached to the PR and reviewers mentioned in a comment
|
|
24
|
+
- [ ] Changes have been reviewed by at least one other engineer
|
|
25
|
+
- [ ] Issue from task tracker has a link to this pull request
|
data/.rubocop.yml
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require: rubocop-performance
|
|
2
|
+
|
|
1
3
|
AllCops:
|
|
2
4
|
Exclude:
|
|
3
5
|
- 'vendor/**/*'
|
|
@@ -34,3 +36,169 @@ Style/ExpandPathArguments:
|
|
|
34
36
|
|
|
35
37
|
Gemspec/RequiredRubyVersion:
|
|
36
38
|
Enabled: false # rubocop compares to gemspec, yet won't allow 1.9 as minimum version
|
|
39
|
+
|
|
40
|
+
Style/Encoding:
|
|
41
|
+
Enabled: false # Ruby 1.9.3 needs these magic comments, e.g. # encoding: UTF-8
|
|
42
|
+
|
|
43
|
+
Style/PercentLiteralDelimiters:
|
|
44
|
+
PreferredDelimiters:
|
|
45
|
+
# rubocop switched from () to [] at some past version.
|
|
46
|
+
# Make sure we are consistent across all bundles/builds.
|
|
47
|
+
default: '[]'
|
|
48
|
+
|
|
49
|
+
Style/Documentation:
|
|
50
|
+
# We can enabled this if/when we want to start doing consistent class documentation.
|
|
51
|
+
# As is, we currently add :nodoc: if anything at all.
|
|
52
|
+
Enabled: false
|
|
53
|
+
|
|
54
|
+
Naming/UncommunicativeMethodParamName:
|
|
55
|
+
# It's possible to configure this cop to allow just about anything, but what's the point.
|
|
56
|
+
# The default min length of a param name is 3, but the the default whitelist includes things
|
|
57
|
+
# like `db` and `io`. So, short names really can be useful.
|
|
58
|
+
Enabled: false
|
|
59
|
+
|
|
60
|
+
Style/CaseEquality:
|
|
61
|
+
# The code uses `===` a lot to compare a regex to a string, but it's not clear that
|
|
62
|
+
# switching to `=~` is always safe, because in some cases the value could be a regex
|
|
63
|
+
# or a string and `str1 =~ str2` isn't valid. Whoever enables this cop should carefully
|
|
64
|
+
# review and test each of these.
|
|
65
|
+
Enabled: false
|
|
66
|
+
|
|
67
|
+
Style/FrozenStringLiteralComment:
|
|
68
|
+
# If we do this, it will be in its own PR. It requires adding these magic comments
|
|
69
|
+
# throughout the project, in order to prepare for a future Ruby 3.x.
|
|
70
|
+
Enabled: false
|
|
71
|
+
|
|
72
|
+
Style/SafeNavigation:
|
|
73
|
+
# Not available in Ruby < 2.3.
|
|
74
|
+
Enabled: false
|
|
75
|
+
|
|
76
|
+
#
|
|
77
|
+
# Performance cops are opt in, and `Enabled: true` is always required.
|
|
78
|
+
# Full list is here: https://github.com/rubocop-hq/rubocop-performance/tree/master/lib/rubocop/cop/performance
|
|
79
|
+
# For travis builds, Codacy will see and use these directives.
|
|
80
|
+
#
|
|
81
|
+
Performance/Caller:
|
|
82
|
+
Enabled: true
|
|
83
|
+
Exclude:
|
|
84
|
+
- spec/**/*
|
|
85
|
+
|
|
86
|
+
Performance/CaseWhenSplat:
|
|
87
|
+
Enabled: true
|
|
88
|
+
Exclude:
|
|
89
|
+
- spec/**/*
|
|
90
|
+
|
|
91
|
+
Performance/Casecmp:
|
|
92
|
+
Enabled: true
|
|
93
|
+
Exclude:
|
|
94
|
+
- spec/**/*
|
|
95
|
+
|
|
96
|
+
Performance/ChainArrayAllocation:
|
|
97
|
+
Enabled: true
|
|
98
|
+
Exclude:
|
|
99
|
+
- spec/**/*
|
|
100
|
+
|
|
101
|
+
Performance/CompareWithBlock:
|
|
102
|
+
Enabled: true
|
|
103
|
+
Exclude:
|
|
104
|
+
- spec/**/*
|
|
105
|
+
|
|
106
|
+
Performance/Count:
|
|
107
|
+
Enabled: true
|
|
108
|
+
Exclude:
|
|
109
|
+
- spec/**/*
|
|
110
|
+
|
|
111
|
+
Performance/Detect:
|
|
112
|
+
Enabled: true
|
|
113
|
+
Exclude:
|
|
114
|
+
- spec/**/*
|
|
115
|
+
|
|
116
|
+
Performance/DoubleStartEndWith:
|
|
117
|
+
Enabled: true
|
|
118
|
+
Exclude:
|
|
119
|
+
- spec/**/*
|
|
120
|
+
|
|
121
|
+
Performance/EndWith:
|
|
122
|
+
Enabled: true
|
|
123
|
+
Exclude:
|
|
124
|
+
- spec/**/*
|
|
125
|
+
|
|
126
|
+
Performance/FixedSize:
|
|
127
|
+
Enabled: true
|
|
128
|
+
Exclude:
|
|
129
|
+
- spec/**/*
|
|
130
|
+
|
|
131
|
+
Performance/FlatMap:
|
|
132
|
+
Enabled: true
|
|
133
|
+
Exclude:
|
|
134
|
+
- spec/**/*
|
|
135
|
+
|
|
136
|
+
Performance/InefficientHashSearch:
|
|
137
|
+
Enabled: true
|
|
138
|
+
Exclude:
|
|
139
|
+
- spec/**/*
|
|
140
|
+
|
|
141
|
+
Performance/OpenStruct:
|
|
142
|
+
Enabled: true
|
|
143
|
+
Exclude:
|
|
144
|
+
- spec/**/*
|
|
145
|
+
|
|
146
|
+
Performance/RangeInclude:
|
|
147
|
+
Enabled: true
|
|
148
|
+
Exclude:
|
|
149
|
+
- spec/**/*
|
|
150
|
+
|
|
151
|
+
Performance/RedundantBlockCall:
|
|
152
|
+
Enabled: true
|
|
153
|
+
Exclude:
|
|
154
|
+
- spec/**/*
|
|
155
|
+
|
|
156
|
+
Performance/RedundantMatch:
|
|
157
|
+
Enabled: true
|
|
158
|
+
Exclude:
|
|
159
|
+
- spec/**/*
|
|
160
|
+
|
|
161
|
+
Performance/RedundantMerge:
|
|
162
|
+
Enabled: true
|
|
163
|
+
Exclude:
|
|
164
|
+
- spec/**/*
|
|
165
|
+
|
|
166
|
+
Performance/RegexpMatch:
|
|
167
|
+
Enabled: true
|
|
168
|
+
Exclude:
|
|
169
|
+
- spec/**/*
|
|
170
|
+
|
|
171
|
+
Performance/ReverseEach:
|
|
172
|
+
Enabled: true
|
|
173
|
+
Exclude:
|
|
174
|
+
- spec/**/*
|
|
175
|
+
|
|
176
|
+
Performance/Size:
|
|
177
|
+
Enabled: true
|
|
178
|
+
Exclude:
|
|
179
|
+
- spec/**/*
|
|
180
|
+
|
|
181
|
+
Performance/StartWith:
|
|
182
|
+
Enabled: true
|
|
183
|
+
Exclude:
|
|
184
|
+
- spec/**/*
|
|
185
|
+
|
|
186
|
+
Performance/StringReplacement:
|
|
187
|
+
Enabled: true
|
|
188
|
+
Exclude:
|
|
189
|
+
- spec/**/*
|
|
190
|
+
|
|
191
|
+
Performance/TimesMap:
|
|
192
|
+
Enabled: true
|
|
193
|
+
Exclude:
|
|
194
|
+
- spec/**/*
|
|
195
|
+
|
|
196
|
+
Performance/UnfreezeString:
|
|
197
|
+
Enabled: true
|
|
198
|
+
Exclude:
|
|
199
|
+
- spec/**/*
|
|
200
|
+
|
|
201
|
+
Performance/UriDefaultParser:
|
|
202
|
+
Enabled: true
|
|
203
|
+
Exclude:
|
|
204
|
+
- spec/**/*
|
data/.travis.yml
CHANGED
|
@@ -1,26 +1,23 @@
|
|
|
1
1
|
sudo: false
|
|
2
|
+
dist: trusty
|
|
2
3
|
services:
|
|
3
4
|
- redis-server
|
|
4
5
|
language: ruby
|
|
5
|
-
# Broken bundler on travis CI - https://github.com/bundler/bundler/issues/2784
|
|
6
|
-
before_install:
|
|
7
|
-
- gem update --system 2.7.7
|
|
8
|
-
- gem --version
|
|
9
|
-
- gem install bundler -v 1.6.1
|
|
10
|
-
- bundle --version
|
|
11
6
|
|
|
12
7
|
rvm:
|
|
13
8
|
- 1.9.3
|
|
14
9
|
- 2.0.0
|
|
15
10
|
- 2.1.0
|
|
16
11
|
- 2.2.2
|
|
17
|
-
- 2.3.0
|
|
18
12
|
- 2.3.8
|
|
19
13
|
- 2.4.5
|
|
20
14
|
- 2.5.3
|
|
21
|
-
- 2.6.
|
|
15
|
+
- 2.6.5
|
|
16
|
+
- 2.7.0
|
|
22
17
|
- rbx
|
|
23
|
-
|
|
18
|
+
# Travis's own rvm installer is failing on JRuby builds, TODO: reenable when fixed.
|
|
19
|
+
# - jruby-9.1.9.0
|
|
20
|
+
|
|
24
21
|
#
|
|
25
22
|
# # About legacy JRuby
|
|
26
23
|
#
|
|
@@ -53,8 +50,6 @@ jdk:
|
|
|
53
50
|
- openjdk8
|
|
54
51
|
- oraclejdk8
|
|
55
52
|
- oraclejdk9
|
|
56
|
-
env:
|
|
57
|
-
- ROLLBAR_SSL_CERT_FILE=/home/travis/build/rollbar/rollbar-gem/spec/cacert.pem
|
|
58
53
|
gemfile:
|
|
59
54
|
- gemfiles/rails30.gemfile
|
|
60
55
|
- gemfiles/rails31.gemfile
|
|
@@ -65,14 +60,13 @@ gemfile:
|
|
|
65
60
|
- gemfiles/rails50.gemfile
|
|
66
61
|
- gemfiles/rails51.gemfile
|
|
67
62
|
- gemfiles/rails52.gemfile
|
|
63
|
+
- gemfiles/rails60.gemfile
|
|
68
64
|
matrix:
|
|
69
65
|
include: []
|
|
70
66
|
|
|
71
67
|
allow_failures:
|
|
72
68
|
- rvm: ruby-head
|
|
73
69
|
- rvm: jruby-head
|
|
74
|
-
# Ruby 2.6.x is still being eveluated and may have test failures
|
|
75
|
-
- rvm: 2.6.0
|
|
76
70
|
# oraclejdk9 has a dependency issue that needs to be investigated
|
|
77
71
|
- jdk: oraclejdk9
|
|
78
72
|
|
|
@@ -103,12 +97,6 @@ matrix:
|
|
|
103
97
|
jdk: oraclejdk8
|
|
104
98
|
- rvm: 2.2.2
|
|
105
99
|
jdk: oraclejdk9
|
|
106
|
-
- rvm: 2.3.0
|
|
107
|
-
jdk: openjdk8
|
|
108
|
-
- rvm: 2.3.0
|
|
109
|
-
jdk: oraclejdk8
|
|
110
|
-
- rvm: 2.3.0
|
|
111
|
-
jdk: oraclejdk9
|
|
112
100
|
- rvm: 2.3.8
|
|
113
101
|
jdk: openjdk8
|
|
114
102
|
- rvm: 2.3.8
|
|
@@ -127,11 +115,17 @@ matrix:
|
|
|
127
115
|
jdk: oraclejdk8
|
|
128
116
|
- rvm: 2.5.3
|
|
129
117
|
jdk: oraclejdk9
|
|
130
|
-
- rvm: 2.6.
|
|
118
|
+
- rvm: 2.6.5
|
|
131
119
|
jdk: openjdk8
|
|
132
|
-
- rvm: 2.6.
|
|
120
|
+
- rvm: 2.6.5
|
|
133
121
|
jdk: oraclejdk8
|
|
134
|
-
- rvm: 2.6.
|
|
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
|
|
135
129
|
jdk: oraclejdk9
|
|
136
130
|
|
|
137
131
|
- rvm: ruby-head
|
|
@@ -147,6 +141,13 @@ matrix:
|
|
|
147
141
|
- rvm: rbx
|
|
148
142
|
jdk: oraclejdk9
|
|
149
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
|
|
150
151
|
# Rails 5.x requires Ruby 2.2.2 or higher
|
|
151
152
|
- rvm: 1.9.3
|
|
152
153
|
gemfile: gemfiles/rails50.gemfile
|
|
@@ -154,6 +155,8 @@ matrix:
|
|
|
154
155
|
gemfile: gemfiles/rails51.gemfile
|
|
155
156
|
- rvm: 1.9.3
|
|
156
157
|
gemfile: gemfiles/rails52.gemfile
|
|
158
|
+
- rvm: 1.9.3
|
|
159
|
+
gemfile: gemfiles/rails60.gemfile
|
|
157
160
|
# Rails 5.x requires Ruby 2.2.2 or higher
|
|
158
161
|
- rvm: 2.0.0
|
|
159
162
|
gemfile: gemfiles/rails50.gemfile
|
|
@@ -161,6 +164,8 @@ matrix:
|
|
|
161
164
|
gemfile: gemfiles/rails51.gemfile
|
|
162
165
|
- rvm: 2.0.0
|
|
163
166
|
gemfile: gemfiles/rails52.gemfile
|
|
167
|
+
- rvm: 2.0.0
|
|
168
|
+
gemfile: gemfiles/rails60.gemfile
|
|
164
169
|
# Rails 5.x requires Ruby 2.2.2 or higher
|
|
165
170
|
- rvm: 2.1.0
|
|
166
171
|
gemfile: gemfiles/rails50.gemfile
|
|
@@ -168,18 +173,17 @@ matrix:
|
|
|
168
173
|
gemfile: gemfiles/rails51.gemfile
|
|
169
174
|
- rvm: 2.1.0
|
|
170
175
|
gemfile: gemfiles/rails52.gemfile
|
|
171
|
-
|
|
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.
|
|
172
180
|
- rvm: 2.2.2
|
|
173
181
|
gemfile: gemfiles/rails30.gemfile
|
|
174
182
|
- rvm: 2.2.2
|
|
175
183
|
gemfile: gemfiles/rails31.gemfile
|
|
184
|
+
- rvm: 2.2.2
|
|
185
|
+
gemfile: gemfiles/rails52.gemfile
|
|
176
186
|
# MRI 2.3.x supports Rails 4.0.x and higher
|
|
177
|
-
- rvm: 2.3.0
|
|
178
|
-
gemfile: gemfiles/rails30.gemfile
|
|
179
|
-
- rvm: 2.3.0
|
|
180
|
-
gemfile: gemfiles/rails31.gemfile
|
|
181
|
-
- rvm: 2.3.0
|
|
182
|
-
gemfile: gemfiles/rails32.gemfile
|
|
183
187
|
- rvm: 2.3.8
|
|
184
188
|
gemfile: gemfiles/rails30.gemfile
|
|
185
189
|
- rvm: 2.3.8
|
|
@@ -212,16 +216,39 @@ matrix:
|
|
|
212
216
|
gemfile: gemfiles/rails40.gemfile
|
|
213
217
|
- rvm: 2.5.3
|
|
214
218
|
gemfile: gemfiles/rails41.gemfile
|
|
215
|
-
- rvm: 2.6.
|
|
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
|
|
216
235
|
gemfile: gemfiles/rails30.gemfile
|
|
217
|
-
- rvm: 2.
|
|
236
|
+
- rvm: 2.7.0
|
|
218
237
|
gemfile: gemfiles/rails31.gemfile
|
|
219
|
-
- rvm: 2.
|
|
238
|
+
- rvm: 2.7.0
|
|
220
239
|
gemfile: gemfiles/rails32.gemfile
|
|
221
|
-
- rvm: 2.
|
|
240
|
+
- rvm: 2.7.0
|
|
222
241
|
gemfile: gemfiles/rails40.gemfile
|
|
223
|
-
- rvm: 2.
|
|
242
|
+
- rvm: 2.7.0
|
|
224
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
|
|
225
252
|
# JRuby JDBC Adapter is only compatible with Rails >= 5.x
|
|
226
253
|
- rvm: jruby-9.1.9.0
|
|
227
254
|
gemfile: gemfiles/rails30.gemfile
|
|
@@ -253,3 +280,5 @@ matrix:
|
|
|
253
280
|
gemfile: gemfiles/rails51.gemfile
|
|
254
281
|
- rvm: rbx
|
|
255
282
|
gemfile: gemfiles/rails52.gemfile
|
|
283
|
+
- rvm: rbx
|
|
284
|
+
gemfile: gemfiles/rails60.gemfile
|
data/Appraisals
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
appraise
|
|
2
|
-
gem
|
|
1
|
+
appraise 'rails30' do
|
|
2
|
+
gem 'rails', '3.0.20'
|
|
3
3
|
end
|
|
4
4
|
|
|
5
|
-
appraise
|
|
6
|
-
gem
|
|
5
|
+
appraise 'rails31' do
|
|
6
|
+
gem 'rails', '3.1.12'
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
appraise
|
|
10
|
-
gem
|
|
9
|
+
appraise 'rails32' do
|
|
10
|
+
gem 'rails', '3.2.21'
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
appraise
|
|
14
|
-
gem
|
|
13
|
+
appraise 'rails40' do
|
|
14
|
+
gem 'rails', '4.0.13'
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
appraise
|
|
18
|
-
gem
|
|
17
|
+
appraise 'rails41' do
|
|
18
|
+
gem 'rails', '4.1.9'
|
|
19
19
|
end
|
data/Gemfile
CHANGED
|
@@ -2,27 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
source 'https://rubygems.org'
|
|
4
4
|
|
|
5
|
+
# Used by spec/commands/rollbar_rails_runner_spec, and can be used whenever a
|
|
6
|
+
# new process is created during tests. (Testing rake tasks, for example.)
|
|
7
|
+
# This is a workaround for ENV['BUNDLE_GEMFILE'] not working as expected on Travis.
|
|
8
|
+
# We use the ||= assignment because Travis loads the gemfile twice, the second time
|
|
9
|
+
# with the wrong gemfile path.
|
|
10
|
+
ENV['CURRENT_GEMFILE'] ||= __FILE__
|
|
11
|
+
|
|
5
12
|
is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby')
|
|
6
13
|
|
|
14
|
+
GEMFILE_RAILS_VERSION = '5.2.2'.freeze
|
|
15
|
+
|
|
7
16
|
gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
|
8
17
|
gem 'appraisal'
|
|
9
18
|
gem 'jruby-openssl', :platform => :jruby
|
|
10
|
-
gem 'rails',
|
|
19
|
+
gem 'rails', GEMFILE_RAILS_VERSION
|
|
11
20
|
gem 'rake'
|
|
12
|
-
|
|
13
|
-
gem '
|
|
21
|
+
if GEMFILE_RAILS_VERSION < '6.0'
|
|
22
|
+
gem 'rspec-rails', '~> 3.4'
|
|
23
|
+
else
|
|
24
|
+
# TODO: update this when 4.x becomes available on Rubygems
|
|
25
|
+
gem 'rspec-rails', :git => 'https://github.com/rspec/rspec-rails', :ref => 'v4.0.0.beta2' # rubocop:disable Bundler/DuplicatedGem
|
|
26
|
+
end
|
|
14
27
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
gem 'oj', '~> 2.16.1' # rubocop:disable Bundler/DuplicatedGem
|
|
20
|
-
else
|
|
21
|
-
gem 'oj', '~> 2.12.14' # rubocop:disable Bundler/DuplicatedGem
|
|
22
|
-
end
|
|
28
|
+
if GEMFILE_RAILS_VERSION < '6.0'
|
|
29
|
+
gem 'sqlite3', '< 1.4.0', :platform => [:ruby, :mswin, :mingw]
|
|
30
|
+
else
|
|
31
|
+
gem 'sqlite3', '~> 1.4', :platform => [:ruby, :mswin, :mingw] # rubocop:disable Bundler/DuplicatedGem
|
|
23
32
|
end
|
|
24
33
|
|
|
25
|
-
if RUBY_VERSION
|
|
34
|
+
if RUBY_VERSION < '2.2.2'
|
|
26
35
|
gem 'sidekiq', '~> 2.13.0'
|
|
27
36
|
else
|
|
28
37
|
gem 'sidekiq', '>= 2.13.0' # rubocop:disable Bundler/DuplicatedGem
|
|
@@ -36,24 +45,36 @@ platforms :rbx do
|
|
|
36
45
|
end
|
|
37
46
|
|
|
38
47
|
if RUBY_VERSION.start_with?('1.9')
|
|
48
|
+
gem 'capistrano', '<= 3.4.1', :require => false
|
|
49
|
+
gem 'json', '1.8.6'
|
|
39
50
|
gem 'shoryuken', '>= 4.0.0', '<= 4.0.2'
|
|
40
51
|
gem 'sucker_punch', '~> 1.0'
|
|
41
52
|
elsif RUBY_VERSION.start_with?('2')
|
|
53
|
+
gem 'capistrano', :require => false # rubocop:disable Bundler/DuplicatedGem
|
|
42
54
|
gem 'codacy-coverage'
|
|
43
55
|
gem 'shoryuken' # rubocop:disable Bundler/DuplicatedGem
|
|
44
56
|
gem 'simplecov'
|
|
45
57
|
gem 'sucker_punch', '~> 2.0' # rubocop:disable Bundler/DuplicatedGem
|
|
46
58
|
end
|
|
47
59
|
|
|
60
|
+
unless is_jruby
|
|
61
|
+
# JRuby doesn't support fork, which is required for this test helper.
|
|
62
|
+
gem 'rspec-command'
|
|
63
|
+
end
|
|
64
|
+
|
|
48
65
|
gem 'aws-sdk-sqs'
|
|
49
66
|
gem 'database_cleaner'
|
|
50
|
-
|
|
67
|
+
if GEMFILE_RAILS_VERSION < '6.0'
|
|
68
|
+
gem 'delayed_job', :require => false
|
|
69
|
+
else
|
|
70
|
+
gem 'delayed_job', '~> 4.1', :require => false # rubocop:disable Bundler/DuplicatedGem
|
|
71
|
+
end
|
|
51
72
|
gem 'generator_spec'
|
|
52
73
|
gem 'girl_friday', '>= 0.11.1'
|
|
53
74
|
gem 'redis'
|
|
54
75
|
gem 'resque', '< 2.0.0'
|
|
55
|
-
gem 'rspec-command'
|
|
56
76
|
gem 'rubocop', :require => false
|
|
77
|
+
gem 'rubocop-performance', :require => false
|
|
57
78
|
gem 'sinatra'
|
|
58
79
|
gem 'webmock', :require => false
|
|
59
80
|
gemspec
|
data/README.md
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
# Rollbar-gem
|
|
2
|
-
[](https://travis-ci.org/rollbar/rollbar-gem/branches)
|
|
3
3
|
[](http://badge.fury.io/rb/rollbar)
|
|
4
4
|
[](https://dependabot.com/compatibility-score.html?dependency-name=rollbar&package-manager=bundler&version-scheme=semver&new-version=latest)
|
|
5
5
|
|
|
6
|
+
|
|
6
7
|
> WARNING: Ruby 2.6.0 introduced a new bug bug ([#15472 -
|
|
7
8
|
Invalid JSON data being sent from Net::HTTP in some cases with Ruby 2.6.0](https://bugs.ruby-lang.org/issues/15472)) that may result in the Rollbar API returning an error when an exception is reported. (See [rollbar-gem issue #797](https://github.com/rollbar/rollbar-gem/issues/797)).
|
|
8
|
-
|
|
9
|
+
|
|
10
|
+
> UPDATE: This bug is fixed in Ruby 2.6.1, and rollbar-gem has a safe workaround in version >= 2.19.0.
|
|
11
|
+
If you need to stay on Ruby 2.6.0 for any reason, make sure you have the latest rollbar-gem.
|
|
9
12
|
|
|
10
13
|
|
|
11
14
|
|
data/Rakefile
CHANGED
|
File without changes
|
data/data/rollbar.snippet.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(r){function
|
|
1
|
+
!function(r){var e={};function o(n){if(e[n])return e[n].exports;var t=e[n]={i:n,l:!1,exports:{}};return r[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=r,o.c=e,o.d=function(r,e,n){o.o(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:n})},o.r=function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},o.t=function(r,e){if(1&e&&(r=o(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var t in r)o.d(n,t,function(e){return r[e]}.bind(null,t));return n},o.n=function(r){var e=r&&r.__esModule?function(){return r.default}:function(){return r};return o.d(e,"a",e),e},o.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},o.p="",o(o.s=0)}([function(r,e,o){"use strict";var n=o(1),t=o(5);_rollbarConfig=_rollbarConfig||{},_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||"https://cdn.rollbar.com/rollbarjs/refs/tags/v2.19.3/rollbar.min.js",_rollbarConfig.async=void 0===_rollbarConfig.async||_rollbarConfig.async;var a=n.setupShim(window,_rollbarConfig),l=t(_rollbarConfig);window.rollbar=n.Rollbar,a.loadFull(window,document,!_rollbarConfig.async,_rollbarConfig,l)},function(r,e,o){"use strict";var n=o(2),t=o(3);function a(r){return function(){try{return r.apply(this,arguments)}catch(r){try{console.error("[Rollbar]: Internal error",r)}catch(r){}}}}var l=0;function i(r,e){this.options=r,this._rollbarOldOnError=null;var o=l++;this.shimId=function(){return o},"undefined"!=typeof window&&window._rollbarShims&&(window._rollbarShims[o]={handler:e,messages:[]})}var s=o(4),d=function(r,e){return new i(r,e)},c=function(r){return new s(d,r)};function u(r){return a((function(){var e=this,o=Array.prototype.slice.call(arguments,0),n={shim:e,method:r,args:o,ts:new Date};window._rollbarShims[this.shimId()].messages.push(n)}))}i.prototype.loadFull=function(r,e,o,n,t){var l=!1,i=e.createElement("script"),s=e.getElementsByTagName("script")[0],d=s.parentNode;i.crossOrigin="",i.src=n.rollbarJsUrl,o||(i.async=!0),i.onload=i.onreadystatechange=a((function(){if(!(l||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState)){i.onload=i.onreadystatechange=null;try{d.removeChild(i)}catch(r){}l=!0,function(){var e;if(void 0===r._rollbarDidLoad){e=new Error("rollbar.js did not load");for(var o,n,a,l,i=0;o=r._rollbarShims[i++];)for(o=o.messages||[];n=o.shift();)for(a=n.args||[],i=0;i<a.length;++i)if("function"==typeof(l=a[i])){l(e);break}}"function"==typeof t&&t(e)}()}})),d.insertBefore(i,s)},i.prototype.wrap=function(r,e,o){try{var n;if(n="function"==typeof e?e:function(){return e||{}},"function"!=typeof r)return r;if(r._isWrap)return r;if(!r._rollbar_wrapped&&(r._rollbar_wrapped=function(){o&&"function"==typeof o&&o.apply(this,arguments);try{return r.apply(this,arguments)}catch(o){var e=o;throw e&&("string"==typeof e&&(e=new String(e)),e._rollbarContext=n()||{},e._rollbarContext._wrappedSource=r.toString(),window._rollbarWrappedError=e),e}},r._rollbar_wrapped._isWrap=!0,r.hasOwnProperty))for(var t in r)r.hasOwnProperty(t)&&(r._rollbar_wrapped[t]=r[t]);return r._rollbar_wrapped}catch(e){return r}};for(var p="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split(","),f=0;f<p.length;++f)i.prototype[p[f]]=u(p[f]);r.exports={setupShim:function(r,e){if(r){var o=e.globalAlias||"Rollbar";if("object"==typeof r[o])return r[o];r._rollbarShims={},r._rollbarWrappedError=null;var l=new c(e);return a((function(){e.captureUncaught&&(l._rollbarOldOnError=r.onerror,n.captureUncaughtExceptions(r,l,!0),e.wrapGlobalEventHandlers&&t(r,l,!0)),e.captureUnhandledRejections&&n.captureUnhandledRejections(r,l,!0);var a=e.autoInstrument;return!1!==e.enabled&&(void 0===a||!0===a||"object"==typeof a&&a.network)&&r.addEventListener&&(r.addEventListener("load",l.captureLoad.bind(l)),r.addEventListener("DOMContentLoaded",l.captureDomContentLoaded.bind(l))),r[o]=l,l}))()}},Rollbar:c}},function(r,e,o){"use strict";function n(r,e,o,n){r._rollbarWrappedError&&(n[4]||(n[4]=r._rollbarWrappedError),n[5]||(n[5]=r._rollbarWrappedError._rollbarContext),r._rollbarWrappedError=null);var t=e.handleUncaughtException.apply(e,n);o&&o.apply(r,n),"anonymous"===t&&(e.anonymousErrorsPending+=1)}r.exports={captureUncaughtExceptions:function(r,e,o){if(r){var t;if("function"==typeof e._rollbarOldOnError)t=e._rollbarOldOnError;else if(r.onerror){for(t=r.onerror;t._rollbarOldOnError;)t=t._rollbarOldOnError;e._rollbarOldOnError=t}e.handleAnonymousErrors();var a=function(){var o=Array.prototype.slice.call(arguments,0);n(r,e,t,o)};o&&(a._rollbarOldOnError=t),r.onerror=a}},captureUnhandledRejections:function(r,e,o){if(r){"function"==typeof r._rollbarURH&&r._rollbarURH.belongsToShim&&r.removeEventListener("unhandledrejection",r._rollbarURH);var n=function(r){var o,n,t;try{o=r.reason}catch(r){o=void 0}try{n=r.promise}catch(r){n="[unhandledrejection] error getting `promise` from event"}try{t=r.detail,!o&&t&&(o=t.reason,n=t.promise)}catch(r){}o||(o="[unhandledrejection] error getting `reason` from event"),e&&e.handleUnhandledRejection&&e.handleUnhandledRejection(o,n)};n.belongsToShim=o,r._rollbarURH=n,r.addEventListener("unhandledrejection",n)}}}},function(r,e,o){"use strict";function n(r,e,o){if(e.hasOwnProperty&&e.hasOwnProperty("addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var t=function(e,o,t){n.call(this,e,r.wrap(o),t)};t._rollbarOldAdd=n,t.belongsToShim=o,e.addEventListener=t;for(var a=e.removeEventListener;a._rollbarOldRemove&&a.belongsToShim;)a=a._rollbarOldRemove;var l=function(r,e,o){a.call(this,r,e&&e._rollbar_wrapped||e,o)};l._rollbarOldRemove=a,l.belongsToShim=o,e.removeEventListener=l}}r.exports=function(r,e,o){if(r){var t,a,l="EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(",");for(t=0;t<l.length;++t)r[a=l[t]]&&r[a].prototype&&n(e,r[a].prototype,o)}}},function(r,e,o){"use strict";function n(r,e){this.impl=r(e,this),this.options=e,function(r){for(var e=function(r){return function(){var e=Array.prototype.slice.call(arguments,0);if(this.impl[r])return this.impl[r].apply(this.impl,e)}},o="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split(","),n=0;n<o.length;n++)r[o[n]]=e(o[n])}(n.prototype)}n.prototype._swapAndProcessMessages=function(r,e){var o,n,t;for(this.impl=r(this.options);o=e.shift();)n=o.method,t=o.args,this[n]&&"function"==typeof this[n]&&("captureDomContentLoaded"===n||"captureLoad"===n?this[n].apply(this,[t[0],o.ts]):this[n].apply(this,t));return this},r.exports=n},function(r,e,o){"use strict";r.exports=function(r){return function(e){if(!e&&!window._rollbarInitialized){for(var o,n,t=(r=r||{}).globalAlias||"Rollbar",a=window.rollbar,l=function(r){return new a(r)},i=0;o=window._rollbarShims[i++];)n||(n=o.handler),o.handler._swapAndProcessMessages(l,o.messages);window[t]=n,window._rollbarInitialized=!0}}}}]);
|
data/docs/configuration.md
CHANGED
|
@@ -108,6 +108,13 @@ Rollbar notifier.
|
|
|
108
108
|
|
|
109
109
|
The number of job failures before reporting the failure to Rollbar.
|
|
110
110
|
|
|
111
|
+
### async_skip_report_handler
|
|
112
|
+
|
|
113
|
+
**Default** `nil`
|
|
114
|
+
**Example** `-> (job) { job.cron? }`
|
|
115
|
+
|
|
116
|
+
A handler, should respond to `#call`, receives the job and returns a boolean. If true, reporting errors will be skipped. If provided, dj_threshold isn't checked.
|
|
117
|
+
|
|
111
118
|
### enabled
|
|
112
119
|
|
|
113
120
|
**Default** `true`
|
|
@@ -129,6 +136,7 @@ An array of backup handlers if the async handlers fails. Each should respond to
|
|
|
129
136
|
|
|
130
137
|
For use with `write_to_file`. Indicates location of the rollbar log file being
|
|
131
138
|
tracked by [rollbar-agent](https://github.com/rollbar/rollbar-agent).
|
|
139
|
+
Enable `files_with_pid_name_enabled` if you want to have different files for each process(only works if extension `rollbar`)
|
|
132
140
|
|
|
133
141
|
### framework
|
|
134
142
|
|
|
@@ -242,6 +250,15 @@ Fields to scrub out of the parsed request data. Will scrub from `GET`, `POST`,
|
|
|
242
250
|
url, and several other locations. Does not currently recurse into the full
|
|
243
251
|
payload.
|
|
244
252
|
|
|
253
|
+
If set to `[:scrub_all]` it will scrub all fields. It will not scrub anything
|
|
254
|
+
that is in the scrub_whitelist configuration array even if :scrub_all is true.
|
|
255
|
+
|
|
256
|
+
### scrub_whitelist
|
|
257
|
+
|
|
258
|
+
Set the list of fields to be whitelisted when `scrub_fields` is set to `[:scrub_all]`.
|
|
259
|
+
|
|
260
|
+
Supports regex entries for partial matching e.g. `[:foo, /\A.+_id\z/, :bar]`
|
|
261
|
+
|
|
245
262
|
### scrub_user
|
|
246
263
|
|
|
247
264
|
**Default** `true`
|
data/gemfiles/rails30.gemfile
CHANGED
|
@@ -2,6 +2,13 @@ require 'rubygems/version'
|
|
|
2
2
|
|
|
3
3
|
source 'https://rubygems.org'
|
|
4
4
|
|
|
5
|
+
# Used by spec/commands/rollbar_rails_runner_spec, and can be used whenever a
|
|
6
|
+
# new process is created during tests. (Testing rake tasks, for example.)
|
|
7
|
+
# This is a workaround for ENV['BUNDLE_GEMFILE'] not working as expected on Travis.
|
|
8
|
+
# We use the ||= assignment because Travis loads the gemfile twice, the second time
|
|
9
|
+
# with the wrong gemfile path.
|
|
10
|
+
ENV['CURRENT_GEMFILE'] ||= __FILE__
|
|
11
|
+
|
|
5
12
|
is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_ENGINE)
|
|
6
13
|
|
|
7
14
|
gem 'sqlite3', '< 1.4.0', :platform => [:ruby, :mswin, :mingw]
|
|
@@ -12,17 +19,8 @@ gem 'rails', '3.0.20'
|
|
|
12
19
|
gem 'hitimes', '< 1.2.2'
|
|
13
20
|
gem 'rake', '< 11'
|
|
14
21
|
gem 'rspec-rails', '>= 2.14.0'
|
|
15
|
-
gem 'celluloid', '< 0.17.0' if RUBY_VERSION == '1.9.2'
|
|
16
|
-
|
|
17
|
-
unless is_jruby
|
|
18
|
-
if RUBY_VERSION >= '2.4.0'
|
|
19
|
-
gem 'oj', '~> 2.16.1'
|
|
20
|
-
else
|
|
21
|
-
gem 'oj', '~> 2.12.14'
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
22
|
|
|
25
|
-
if RUBY_VERSION
|
|
23
|
+
if RUBY_VERSION < '2.2.2'
|
|
26
24
|
gem 'sidekiq', '~> 2.13.0'
|
|
27
25
|
else
|
|
28
26
|
gem 'sidekiq', '>= 2.13.0'
|
|
@@ -37,9 +35,11 @@ platforms :rbx do
|
|
|
37
35
|
end
|
|
38
36
|
|
|
39
37
|
if RUBY_VERSION.start_with?('1.9')
|
|
38
|
+
gem 'capistrano', '<= 3.4.1', :require => false
|
|
40
39
|
gem 'sucker_punch', '~> 1.0'
|
|
41
40
|
gem 'shoryuken', '>= 4.0.0', '<= 4.0.2'
|
|
42
41
|
elsif RUBY_VERSION.start_with?('2')
|
|
42
|
+
gem 'capistrano', :require => false
|
|
43
43
|
gem 'sucker_punch', '~> 2.0'
|
|
44
44
|
gem 'shoryuken'
|
|
45
45
|
gem 'codacy-coverage'
|