rollbar 2.4.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -67,10 +67,9 @@ describe HomeController do
67
67
  }
68
68
 
69
69
  filtered = controller.send( :rollbar_headers, headers )
70
- filtered.should == {
71
- "Authorization" => "*********",
72
- "User-Agent" => "spec"
73
- }
70
+
71
+ expect(filtered['Authorization']).to match(/\**/)
72
+ expect(filtered['User-Agent']).to be_eql('spec')
74
73
  end
75
74
 
76
75
  it 'should filter custom headers' do
@@ -85,11 +84,9 @@ describe HomeController do
85
84
  }
86
85
 
87
86
  filtered = controller.send( :rollbar_headers, headers )
88
- filtered.should == {
89
- "Auth" => "**********",
90
- "Token" => "***********",
91
- "Content-Type" => "text/html"
92
- }
87
+ expect(filtered['Auth']).to match(/\**/)
88
+ expect(filtered['Token']).to match(/\**/)
89
+ expect(filtered['Content-Type']).to be_eql('text/html')
93
90
  end
94
91
 
95
92
  end
@@ -188,11 +185,11 @@ describe HomeController do
188
185
 
189
186
  filtered = Rollbar.last_report[:request][:params]
190
187
 
191
- filtered["passwd"].should == "******"
192
- filtered["password"].should == "******"
193
- filtered["secret"].should == "******"
194
- filtered["notpass"].should == "visible"
195
- filtered["secret_token"].should == "*" * 32
188
+ expect(filtered["passwd"]).to match(/\**/)
189
+ expect(filtered["password"]).to match(/\**/)
190
+ expect(filtered["secret"]).to match(/\**/)
191
+ expect(filtered["notpass"]).to match(/\**/)
192
+ expect(filtered["secret_token"]).to match(/\**/)
196
193
  end
197
194
 
198
195
  it "should scrub custom scrub_fields" do
@@ -214,9 +211,9 @@ describe HomeController do
214
211
  filtered["passwd"].should == "visible"
215
212
  # config.filter_parameters is set to [:password] in
216
213
  # spec/dummyapp/config/application.rb
217
- filtered["password"].should == "*******"
218
- filtered["secret"].should == "******"
219
- filtered["notpass"].should == "******"
214
+ expect(filtered["password"]).to match(/\**/)
215
+ expect(filtered["secret"]).to match(/\**/)
216
+ expect(filtered["notpass"]).to match(/\**/)
220
217
  end
221
218
  end
222
219
 
@@ -391,6 +388,30 @@ describe HomeController do
391
388
  end
392
389
  end
393
390
 
391
+ context 'with params to be scrubed from URL', :type => :request do
392
+ next unless Rollbar::LanguageSupport.can_scrub_url?
393
+
394
+ before do
395
+ Rollbar.configure do |config|
396
+ config.scrub_fields = [:password]
397
+ end
398
+ end
399
+
400
+ let(:headers) do
401
+ {
402
+ 'ORIGINAL_FULLPATH' => '/cause_exception?password=my-secret-password'
403
+ }
404
+ end
405
+
406
+ it 'scrubs sensible data from URL' do
407
+ expect { get '/cause_exception', { :password => 'my-secret-password' }, headers }.to raise_exception
408
+
409
+ request_data = Rollbar.last_report[:request]
410
+
411
+ expect(request_data[:url]).to match('http:\/\/www.example.com\/cause_exception\?password=\*{3,8}')
412
+ end
413
+ end
414
+
394
415
  after(:each) do
395
416
  Rollbar.configure do |config|
396
417
  config.logger = ::Rails.logger
@@ -24,6 +24,11 @@ module MultiJson
24
24
  end
25
25
  end
26
26
 
27
+ module MissingCustomOptions
28
+ # Consider the fact that there's MultiJson::Adapters::Yajl but not
29
+ # Rollbar::JSON::Yajl, it should not look for ::Yajl but only
30
+ # Rollbar::JSON::Yajl.
31
+ end
27
32
 
28
33
  describe Rollbar::JSON do
29
34
  let(:payload) do
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+ require 'rack/mock'
3
+
4
+ require 'rollbar/request_data_extractor'
5
+
6
+ class ExtractorDummy
7
+ include Rollbar::RequestDataExtractor
8
+ end
9
+
10
+ describe Rollbar::RequestDataExtractor do
11
+ subject { ExtractorDummy.new }
12
+
13
+ let(:env) do
14
+ Rack::MockRequest.env_for('/', 'HTTP_HOST' => 'localhost:81', 'HTTP_X_FORWARDED_HOST' => 'example.org:9292')
15
+ end
16
+
17
+ describe '#extract_request_data_from_rack' do
18
+ let(:scrubber) { double }
19
+
20
+ it 'returns a Hash object' do
21
+ scrubber_config = {
22
+ :scrub_fields => kind_of(Array),
23
+ :scrub_user => Rollbar.configuration.scrub_user,
24
+ :scrub_password => Rollbar.configuration.scrub_password,
25
+ :randomize_scrub_length => Rollbar.configuration.randomize_scrub_length
26
+ }
27
+ expect(Rollbar::Scrubbers::URL).to receive(:new).with(scrubber_config).and_return(scrubber)
28
+ expect(scrubber).to receive(:call).with(kind_of(String))
29
+
30
+ result = subject.extract_request_data_from_rack(env)
31
+
32
+ expect(result).to be_kind_of(Hash)
33
+ end
34
+ end
35
+
36
+ describe '#rollbar_scrubbed_value' do
37
+ context 'with random scrub length' do
38
+ before do
39
+ allow(Rollbar.configuration).to receive(:randomize_scrub_length).and_return(true)
40
+ end
41
+
42
+ let(:value) { 'herecomesaverylongvalue' }
43
+
44
+ it 'randomizes the scrubbed string' do
45
+ expect(subject.rollbar_scrubbed(value)).to match(/\*{3,8}/)
46
+ end
47
+ end
48
+
49
+ context 'with no-random scrub length' do
50
+ before do
51
+ allow(Rollbar.configuration).to receive(:randomize_scrub_length).and_return(false)
52
+ end
53
+
54
+ let(:value) { 'herecomesaverylongvalue' }
55
+
56
+ it 'randomizes the scrubbed string' do
57
+ expect(subject.rollbar_scrubbed(value)).to match(/\*{#{value.length}}/)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,103 @@
1
+ require 'spec_helper'
2
+ require 'rollbar/language_support'
3
+ require 'rollbar/scrubbers/url'
4
+
5
+ describe Rollbar::Scrubbers::URL do
6
+ let(:options) do
7
+ { :scrub_fields => [:password, :secret],
8
+ :scrub_user => false,
9
+ :scrub_password => false,
10
+ :randomize_scrub_length => true
11
+ }
12
+ end
13
+
14
+ subject { described_class.new(options) }
15
+
16
+ describe '#call' do
17
+ context 'cannot scrub URLs' do
18
+ next if Rollbar::LanguageSupport.can_scrub_url?
19
+
20
+ let(:url) { 'http://user:password@foo.com/some-interesting-path#fragment' }
21
+
22
+ it 'returns the URL without any change' do
23
+ expect(subject.call(url)).to be_eql(url)
24
+ end
25
+ end
26
+
27
+ context 'with ruby different from 1.8' do
28
+ next unless Rollbar::LanguageSupport.can_scrub_url?
29
+
30
+ context 'without data to be scrubbed' do
31
+ let(:url) { 'http://user:password@foo.com/some-interesting-path#fragment' }
32
+
33
+ it 'returns the URL without any change' do
34
+ expect(subject.call(url)).to be_eql(url)
35
+ end
36
+
37
+ context 'with arrays in params' do
38
+ let(:url) { 'http://user:password@foo.com/some-interesting-path?foo[]=1&foo[]=2' }
39
+
40
+ it 'returns the URL without any change' do
41
+ expect(subject.call(url)).to be_eql(url)
42
+ end
43
+ end
44
+ end
45
+
46
+ context 'scrubbing user and password' do
47
+ let(:options) do
48
+ {
49
+ :scrub_fields => [],
50
+ :scrub_password => true,
51
+ :scrub_user => true
52
+ }
53
+ end
54
+
55
+ let(:url) { 'http://user:password@foo.com/some-interesting-path#fragment' }
56
+
57
+ it 'returns the URL without any change' do
58
+ expected_url = /http:\/\/\*{3,8}:\*{3,8}@foo.com\/some-interesting\-path#fragment/
59
+
60
+ expect(subject.call(url)).to match(expected_url)
61
+ end
62
+ end
63
+
64
+ context 'with params to be filtered' do
65
+ let(:url) { 'http://foo.com/some-interesting-path?foo=bar&password=mypassword&secret=somevalue#fragment' }
66
+
67
+ it 'returns the URL with some params filtered' do
68
+ expected_url = /http:\/\/foo.com\/some-interesting-path\?foo=bar&password=\*{3,8}&secret=\*{3,8}#fragment/
69
+
70
+ expect(subject.call(url)).to match(expected_url)
71
+ end
72
+
73
+ context 'having array params' do
74
+ let(:url) { 'http://foo.com/some-interesting-path?foo=bar&password[]=mypassword&password[]=otherpassword&secret=somevalue#fragment' }
75
+
76
+ it 'returns the URL with some params filtered' do
77
+ expected_url = /http:\/\/foo.com\/some-interesting-path\?foo=bar&password\[\]=\*{3,8}&password\[\]=\*{3,8}&secret=\*{3,8}#fragment/
78
+
79
+ expect(subject.call(url)).to match(expected_url)
80
+ end
81
+ end
82
+ end
83
+
84
+ context 'with no-random scrub length' do
85
+ let(:options) do
86
+ { :scrub_fields => [:password, :secret],
87
+ :scrub_user => false,
88
+ :scrub_password => false,
89
+ :randomize_scrub_length => false
90
+ }
91
+ end
92
+ let(:password) { 'longpasswordishere' }
93
+ let(:url) { "http://foo.com/some-interesting-path?foo=bar&password=#{password}#fragment" }
94
+
95
+ it 'scrubs with same length than the scrubbed param' do
96
+ expected_url = /http:\/\/foo.com\/some-interesting-path\?foo=bar&password=\*{#{password.length}}#fragment/
97
+
98
+ expect(subject.call(url)).to match(expected_url)
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
metadata CHANGED
@@ -1,221 +1,217 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rollbar
3
- version: !ruby/object:Gem::Version
4
- version: 2.4.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 2
8
+ - 5
9
+ - 0
10
+ version: 2.5.0
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - Rollbar, Inc.
8
14
  autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
- date: 2015-10-06 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2015-10-24 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
14
22
  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
23
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
24
27
  - - ">="
25
- - !ruby/object:Gem::Version
28
+ - !ruby/object:Gem::Version
29
+ hash: 7
30
+ segments:
31
+ - 3
32
+ - 0
33
+ - 0
26
34
  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
35
  type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec-rails
35
39
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
38
43
  - - ">="
39
- - !ruby/object:Gem::Version
44
+ - !ruby/object:Gem::Version
45
+ hash: 55
46
+ segments:
47
+ - 2
48
+ - 14
49
+ - 0
40
50
  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
51
  type: :development
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: database_cleaner
49
55
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 23
62
+ segments:
63
+ - 1
64
+ - 0
65
+ - 0
54
66
  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
67
  type: :development
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: girl_friday
63
71
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
66
75
  - - ">="
67
- - !ruby/object:Gem::Version
76
+ - !ruby/object:Gem::Version
77
+ hash: 49
78
+ segments:
79
+ - 0
80
+ - 11
81
+ - 1
68
82
  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: 1.0.0
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 1.0.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
83
  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
84
+ version_requirements: *id004
85
+ - !ruby/object:Gem::Dependency
98
86
  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
87
  prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
88
+ requirement: &id005 !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
108
91
  - - ">="
109
- - !ruby/object:Gem::Version
92
+ - !ruby/object:Gem::Version
93
+ hash: 7
94
+ segments:
95
+ - 0
96
+ - 2
97
+ - 8
110
98
  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
99
  type: :development
100
+ version_requirements: *id005
101
+ - !ruby/object:Gem::Dependency
102
+ name: sinatra
119
103
  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:
104
+ requirement: &id006 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
129
107
  - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
108
+ - !ruby/object:Gem::Version
109
+ hash: 3
110
+ segments:
111
+ - 0
112
+ version: "0"
132
113
  type: :development
114
+ version_requirements: *id006
115
+ - !ruby/object:Gem::Dependency
116
+ name: resque
133
117
  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:
118
+ requirement: &id007 !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
143
121
  - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
122
+ - !ruby/object:Gem::Version
123
+ hash: 3
124
+ segments:
125
+ - 0
126
+ version: "0"
146
127
  type: :development
128
+ version_requirements: *id007
129
+ - !ruby/object:Gem::Dependency
130
+ name: delayed_job
147
131
  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:
132
+ requirement: &id008 !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
157
135
  - - ">="
158
- - !ruby/object:Gem::Version
159
- version: 0.9.0
136
+ - !ruby/object:Gem::Version
137
+ hash: 3
138
+ segments:
139
+ - 0
140
+ version: "0"
160
141
  type: :development
142
+ version_requirements: *id008
143
+ - !ruby/object:Gem::Dependency
144
+ name: rake
161
145
  prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
146
+ requirement: &id009 !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
164
149
  - - ">="
165
- - !ruby/object:Gem::Version
150
+ - !ruby/object:Gem::Version
151
+ hash: 59
152
+ segments:
153
+ - 0
154
+ - 9
155
+ - 0
166
156
  version: 0.9.0
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
157
  type: :development
158
+ version_requirements: *id009
159
+ - !ruby/object:Gem::Dependency
160
+ name: redis
175
161
  prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
162
+ requirement: &id010 !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
178
165
  - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- - !ruby/object:Gem::Dependency
166
+ - !ruby/object:Gem::Version
167
+ hash: 3
168
+ segments:
169
+ - 0
170
+ version: "0"
171
+ type: :development
172
+ version_requirements: *id010
173
+ - !ruby/object:Gem::Dependency
182
174
  name: multi_json
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- type: :runtime
189
175
  prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
176
+ requirement: &id011 !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
192
179
  - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
- - !ruby/object:Gem::Dependency
180
+ - !ruby/object:Gem::Version
181
+ hash: 3
182
+ segments:
183
+ - 0
184
+ version: "0"
185
+ type: :runtime
186
+ version_requirements: *id011
187
+ - !ruby/object:Gem::Dependency
196
188
  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
189
  prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
190
+ requirement: &id012 !ruby/object:Gem::Requirement
191
+ none: false
192
+ requirements:
193
+ - - ~>
194
+ - !ruby/object:Gem::Version
195
+ hash: 35
196
+ segments:
197
+ - 2
198
+ - 12
199
+ - 14
208
200
  version: 2.12.14
201
+ type: :development
202
+ version_requirements: *id012
209
203
  description: Easy and powerful exception tracking for Ruby
210
- email:
204
+ email:
211
205
  - support@rollbar.com
212
- executables:
206
+ executables:
213
207
  - rollbar-rails-runner
214
208
  extensions: []
209
+
215
210
  extra_rdoc_files: []
216
- files:
217
- - ".gitignore"
218
- - ".travis.yml"
211
+
212
+ files:
213
+ - .gitignore
214
+ - .travis.yml
219
215
  - Appraisals
220
216
  - CHANGELOG.md
221
217
  - Gemfile
@@ -257,6 +253,7 @@ files:
257
253
  - lib/rollbar/json.rb
258
254
  - lib/rollbar/json/default.rb
259
255
  - lib/rollbar/json/oj.rb
256
+ - lib/rollbar/language_support.rb
260
257
  - lib/rollbar/logger_proxy.rb
261
258
  - lib/rollbar/middleware/rack/builder.rb
262
259
  - lib/rollbar/middleware/rack/test_session.rb
@@ -270,6 +267,8 @@ files:
270
267
  - lib/rollbar/rake.rb
271
268
  - lib/rollbar/rake_tasks.rb
272
269
  - lib/rollbar/request_data_extractor.rb
270
+ - lib/rollbar/scrubbers.rb
271
+ - lib/rollbar/scrubbers/url.rb
273
272
  - lib/rollbar/sidekiq.rb
274
273
  - lib/rollbar/tasks/rollbar.cap
275
274
  - lib/rollbar/truncation.rb
@@ -282,6 +281,7 @@ files:
282
281
  - lib/rollbar/util/hash.rb
283
282
  - lib/rollbar/version.rb
284
283
  - rollbar.gemspec
284
+ - spec/cacert.pem
285
285
  - spec/controllers/home_controller_spec.rb
286
286
  - spec/delay/sidekiq_spec.rb
287
287
  - spec/delay/sucker_punch_spec.rb
@@ -358,6 +358,8 @@ files:
358
358
  - spec/rollbar/middleware/rack/builder_spec.rb
359
359
  - spec/rollbar/middleware/sinatra_spec.rb
360
360
  - spec/rollbar/rake_spec.rb
361
+ - spec/rollbar/request_data_extractor_spec.rb
362
+ - spec/rollbar/scrubbers/url_spec.rb
361
363
  - spec/rollbar/sidekiq_spec.rb
362
364
  - spec/rollbar/truncation/frames_strategy_spec.rb
363
365
  - spec/rollbar/truncation/min_body_strategy_spec.rb
@@ -374,31 +376,42 @@ files:
374
376
  - spec/support/helpers.rb
375
377
  - spec/support/notifier_helpers.rb
376
378
  - spec/support/shared_contexts.rb
379
+ has_rdoc: true
377
380
  homepage: https://rollbar.com
378
- licenses:
381
+ licenses:
379
382
  - MIT
380
- metadata: {}
381
383
  post_install_message:
382
384
  rdoc_options: []
383
- require_paths:
385
+
386
+ require_paths:
384
387
  - lib
385
- required_ruby_version: !ruby/object:Gem::Requirement
386
- requirements:
388
+ required_ruby_version: !ruby/object:Gem::Requirement
389
+ none: false
390
+ requirements:
387
391
  - - ">="
388
- - !ruby/object:Gem::Version
389
- version: '0'
390
- required_rubygems_version: !ruby/object:Gem::Requirement
391
- requirements:
392
+ - !ruby/object:Gem::Version
393
+ hash: 3
394
+ segments:
395
+ - 0
396
+ version: "0"
397
+ required_rubygems_version: !ruby/object:Gem::Requirement
398
+ none: false
399
+ requirements:
392
400
  - - ">="
393
- - !ruby/object:Gem::Version
394
- version: '0'
401
+ - !ruby/object:Gem::Version
402
+ hash: 3
403
+ segments:
404
+ - 0
405
+ version: "0"
395
406
  requirements: []
407
+
396
408
  rubyforge_project:
397
- rubygems_version: 2.3.0
409
+ rubygems_version: 1.6.2
398
410
  signing_key:
399
- specification_version: 4
411
+ specification_version: 3
400
412
  summary: Reports exceptions to Rollbar
401
- test_files:
413
+ test_files:
414
+ - spec/cacert.pem
402
415
  - spec/controllers/home_controller_spec.rb
403
416
  - spec/delay/sidekiq_spec.rb
404
417
  - spec/delay/sucker_punch_spec.rb
@@ -475,6 +488,8 @@ test_files:
475
488
  - spec/rollbar/middleware/rack/builder_spec.rb
476
489
  - spec/rollbar/middleware/sinatra_spec.rb
477
490
  - spec/rollbar/rake_spec.rb
491
+ - spec/rollbar/request_data_extractor_spec.rb
492
+ - spec/rollbar/scrubbers/url_spec.rb
478
493
  - spec/rollbar/sidekiq_spec.rb
479
494
  - spec/rollbar/truncation/frames_strategy_spec.rb
480
495
  - spec/rollbar/truncation/min_body_strategy_spec.rb