rollbar 2.1.1 → 2.1.2
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/CHANGELOG.md +6 -0
- data/Gemfile +13 -17
- data/README.md +2 -2
- data/lib/rollbar/request_data_extractor.rb +26 -8
- data/lib/rollbar/version.rb +1 -1
- data/spec/controllers/home_controller_spec.rb +30 -0
- data/spec/dummyapp/app/controllers/home_controller.rb +4 -1
- data/spec/dummyapp/config/routes.rb +1 -0
- data/spec/fixtures/file1 +1 -0
- data/spec/fixtures/file2 +1 -0
- metadata +86 -82
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 553381499b916556da8272eadf551847254ffcaa
|
4
|
+
data.tar.gz: c80b393ccaa1cb9e2c2d46646703510852965ecf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d31b2d8d6d71c30c5888c3dacd631cda2f584d2de6a8b4cb238ca8c484a7037745904cfa5925ea5eca5e2100a93afa8c56681deab6292ffeefd97d4a764b078d
|
7
|
+
data.tar.gz: eedb32f0cc342297fbb7c48f989b8568bb6856ee385bc8f5d65c7d95334f58ed0a3121511d5824c870ddb1545e94fe8f2c265435a1afeb458730f2a2d927d581
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -1,20 +1,16 @@
|
|
1
|
-
|
1
|
+
# This file was generated by Appraisal
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
|
6
|
-
gem 'jruby-openssl', :platform => :jruby
|
7
|
-
gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
8
|
-
gem 'appraisal'
|
3
|
+
source "https://rubygems.org"
|
9
4
|
|
10
|
-
gem
|
11
|
-
gem
|
12
|
-
gem
|
13
|
-
gem
|
14
|
-
gem
|
5
|
+
gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
|
6
|
+
gem "jruby-openssl", :platform => :jruby
|
7
|
+
gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
|
8
|
+
gem "appraisal"
|
9
|
+
gem "rubysl", "~> 2.0", :platform => :rbx
|
10
|
+
gem "racc", :platform => :rbx
|
11
|
+
gem "minitest", :platform => :rbx
|
12
|
+
gem "rubinius-developer_tools", :platform => :rbx
|
13
|
+
gem "rails", "4.2.3"
|
15
14
|
|
16
|
-
|
17
|
-
|
18
|
-
else
|
19
|
-
gem 'debugger'
|
20
|
-
end
|
15
|
+
gemspec
|
16
|
+
gem 'byebug'
|
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', '~> 2.1.
|
15
|
+
gem 'rollbar', '~> 2.1.2'
|
16
16
|
```
|
17
17
|
|
18
18
|
And then execute:
|
@@ -1,7 +1,10 @@
|
|
1
1
|
require 'rack'
|
2
|
+
require 'tempfile'
|
2
3
|
|
3
4
|
module Rollbar
|
4
5
|
module RequestDataExtractor
|
6
|
+
SKIPPED_CLASSES = [Tempfile]
|
7
|
+
|
5
8
|
def extract_person_data_from_controller(env)
|
6
9
|
if env.has_key? 'rollbar.person_data'
|
7
10
|
person_data = env['rollbar.person_data'] || {}
|
@@ -165,22 +168,34 @@ module Rollbar
|
|
165
168
|
result[key] = rollbar_filtered_params(sensitive_params, value)
|
166
169
|
elsif value.is_a?(Array)
|
167
170
|
result[key] = value.map do |v|
|
168
|
-
v.is_a?(Hash) ? rollbar_filtered_params(sensitive_params, v) : v
|
171
|
+
v.is_a?(Hash) ? rollbar_filtered_params(sensitive_params, v) : rollbar_filtered_param_value(v)
|
169
172
|
end
|
170
|
-
elsif
|
171
|
-
result[key] = {
|
172
|
-
:content_type => value.content_type,
|
173
|
-
:original_filename => value.original_filename,
|
174
|
-
:size => value.tempfile.size
|
175
|
-
} rescue 'Uploaded file'
|
173
|
+
elsif skip_value?(value)
|
174
|
+
result[key] = "Skipped value of class '#{value.class.name}'"
|
176
175
|
else
|
177
|
-
result[key] = value
|
176
|
+
result[key] = rollbar_filtered_param_value(value)
|
178
177
|
end
|
179
178
|
|
180
179
|
result
|
181
180
|
end
|
182
181
|
end
|
183
182
|
|
183
|
+
def rollbar_filtered_param_value(value)
|
184
|
+
if ATTACHMENT_CLASSES.include?(value.class.name)
|
185
|
+
begin
|
186
|
+
{
|
187
|
+
:content_type => value.content_type,
|
188
|
+
:original_filename => value.original_filename,
|
189
|
+
:size => value.tempfile.size
|
190
|
+
}
|
191
|
+
rescue
|
192
|
+
'Uploaded file'
|
193
|
+
end
|
194
|
+
else
|
195
|
+
value
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
184
199
|
def sensitive_params_list(env)
|
185
200
|
Array(Rollbar.configuration.scrub_fields) | Array(env['action_dispatch.parameter_filter'])
|
186
201
|
end
|
@@ -193,5 +208,8 @@ module Rollbar
|
|
193
208
|
'*' * (value.length rescue 8)
|
194
209
|
end
|
195
210
|
|
211
|
+
def skip_value?(value)
|
212
|
+
SKIPPED_CLASSES.any? { |klass| value.is_a?(klass) }
|
213
|
+
end
|
196
214
|
end
|
197
215
|
end
|
data/lib/rollbar/version.rb
CHANGED
@@ -349,6 +349,36 @@ describe HomeController do
|
|
349
349
|
end
|
350
350
|
end
|
351
351
|
|
352
|
+
context 'with file uploads',:type => "request" do
|
353
|
+
let(:file1) { fixture_file_upload('spec/fixtures/file1') }
|
354
|
+
let(:file2) { fixture_file_upload('spec/fixtures/file2') }
|
355
|
+
|
356
|
+
context 'with a single upload' do
|
357
|
+
it "saves attachment data" do
|
358
|
+
expect { post '/file_upload', :upload => file1 }.to raise_exception
|
359
|
+
|
360
|
+
upload_param = Rollbar.last_report[:request][:params]['upload']
|
361
|
+
|
362
|
+
expect(upload_param).to have_key(:filename)
|
363
|
+
expect(upload_param).to have_key(:type)
|
364
|
+
expect(upload_param).to have_key(:name)
|
365
|
+
expect(upload_param).to have_key(:head)
|
366
|
+
|
367
|
+
expect(upload_param[:tempfile]).to be_eql("Skipped value of class 'Tempfile'")
|
368
|
+
end
|
369
|
+
end
|
370
|
+
|
371
|
+
context 'with multiple uploads' do
|
372
|
+
it "saves attachment data for all uploads" do
|
373
|
+
expect { post '/file_upload', :upload => [file1, file2] }.to raise_exception
|
374
|
+
sent_params = Rollbar.last_report[:request][:params]['upload']
|
375
|
+
|
376
|
+
expect(sent_params).to be_kind_of(Array)
|
377
|
+
expect(sent_params).to have(2).items
|
378
|
+
end
|
379
|
+
end
|
380
|
+
end
|
381
|
+
|
352
382
|
after(:each) do
|
353
383
|
Rollbar.configure do |config|
|
354
384
|
config.logger = ::Rails.logger
|
@@ -24,11 +24,14 @@ class HomeController < ApplicationController
|
|
24
24
|
render :json => {}
|
25
25
|
end
|
26
26
|
|
27
|
-
|
28
27
|
def cause_exception
|
29
28
|
foo = bar
|
30
29
|
end
|
31
30
|
|
31
|
+
def file_upload
|
32
|
+
this = will_crash
|
33
|
+
end
|
34
|
+
|
32
35
|
def current_user
|
33
36
|
@current_user ||= User.find_by_id(cookies[:session_id])
|
34
37
|
end
|
@@ -8,4 +8,5 @@ Dummy::Application.routes.draw do
|
|
8
8
|
put "/deprecated_report_exception" => "home#deprecated_report_exception"
|
9
9
|
match "/report_exception" => "home#report_exception", :via => [:get, :post, :put]
|
10
10
|
get "/current_user" => "home#current_user"
|
11
|
+
post "/file_upload" => "home#file_upload"
|
11
12
|
end
|
data/spec/fixtures/file1
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
This is a file
|
data/spec/fixtures/file2
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
This is a file
|
metadata
CHANGED
@@ -1,183 +1,183 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rollbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rollbar, Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
|
-
version_requirements: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 3.0.0
|
20
15
|
requirement: !ruby/object:Gem::Requirement
|
21
16
|
requirements:
|
22
|
-
- -
|
17
|
+
- - ">="
|
23
18
|
- !ruby/object:Gem::Version
|
24
19
|
version: 3.0.0
|
25
|
-
prerelease: false
|
26
20
|
type: :development
|
27
|
-
|
28
|
-
name: rspec-rails
|
21
|
+
prerelease: false
|
29
22
|
version_requirements: !ruby/object:Gem::Requirement
|
30
23
|
requirements:
|
31
|
-
- -
|
24
|
+
- - ">="
|
32
25
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
26
|
+
version: 3.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec-rails
|
34
29
|
requirement: !ruby/object:Gem::Requirement
|
35
30
|
requirements:
|
36
|
-
- -
|
31
|
+
- - ">="
|
37
32
|
- !ruby/object:Gem::Version
|
38
33
|
version: 2.14.0
|
39
|
-
prerelease: false
|
40
34
|
type: :development
|
41
|
-
|
42
|
-
name: database_cleaner
|
35
|
+
prerelease: false
|
43
36
|
version_requirements: !ruby/object:Gem::Requirement
|
44
37
|
requirements:
|
45
|
-
- -
|
38
|
+
- - ">="
|
46
39
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
40
|
+
version: 2.14.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: database_cleaner
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
44
|
requirements:
|
50
|
-
- - ~>
|
45
|
+
- - "~>"
|
51
46
|
- !ruby/object:Gem::Version
|
52
47
|
version: 1.0.0
|
53
|
-
prerelease: false
|
54
48
|
type: :development
|
55
|
-
|
56
|
-
name: girl_friday
|
49
|
+
prerelease: false
|
57
50
|
version_requirements: !ruby/object:Gem::Requirement
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
54
|
+
version: 1.0.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: girl_friday
|
62
57
|
requirement: !ruby/object:Gem::Requirement
|
63
58
|
requirements:
|
64
|
-
- -
|
59
|
+
- - ">="
|
65
60
|
- !ruby/object:Gem::Version
|
66
61
|
version: 0.11.1
|
67
|
-
prerelease: false
|
68
62
|
type: :development
|
69
|
-
|
70
|
-
name: sucker_punch
|
63
|
+
prerelease: false
|
71
64
|
version_requirements: !ruby/object:Gem::Requirement
|
72
65
|
requirements:
|
73
|
-
- -
|
66
|
+
- - ">="
|
74
67
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
68
|
+
version: 0.11.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sucker_punch
|
76
71
|
requirement: !ruby/object:Gem::Requirement
|
77
72
|
requirements:
|
78
|
-
- -
|
73
|
+
- - ">="
|
79
74
|
- !ruby/object:Gem::Version
|
80
75
|
version: 1.0.0
|
81
|
-
prerelease: false
|
82
76
|
type: :development
|
83
|
-
|
84
|
-
name: sidekiq
|
77
|
+
prerelease: false
|
85
78
|
version_requirements: !ruby/object:Gem::Requirement
|
86
79
|
requirements:
|
87
|
-
- -
|
80
|
+
- - ">="
|
88
81
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
82
|
+
version: 1.0.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: sidekiq
|
90
85
|
requirement: !ruby/object:Gem::Requirement
|
91
86
|
requirements:
|
92
|
-
- -
|
87
|
+
- - ">="
|
93
88
|
- !ruby/object:Gem::Version
|
94
89
|
version: 2.13.0
|
95
|
-
prerelease: false
|
96
90
|
type: :development
|
97
|
-
|
98
|
-
name: genspec
|
91
|
+
prerelease: false
|
99
92
|
version_requirements: !ruby/object:Gem::Requirement
|
100
93
|
requirements:
|
101
|
-
- -
|
94
|
+
- - ">="
|
102
95
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
96
|
+
version: 2.13.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: genspec
|
104
99
|
requirement: !ruby/object:Gem::Requirement
|
105
100
|
requirements:
|
106
|
-
- -
|
101
|
+
- - ">="
|
107
102
|
- !ruby/object:Gem::Version
|
108
103
|
version: 0.2.8
|
109
|
-
prerelease: false
|
110
104
|
type: :development
|
111
|
-
|
112
|
-
name: sinatra
|
105
|
+
prerelease: false
|
113
106
|
version_requirements: !ruby/object:Gem::Requirement
|
114
107
|
requirements:
|
115
|
-
- -
|
108
|
+
- - ">="
|
116
109
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
110
|
+
version: 0.2.8
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: sinatra
|
118
113
|
requirement: !ruby/object:Gem::Requirement
|
119
114
|
requirements:
|
120
|
-
- -
|
115
|
+
- - ">="
|
121
116
|
- !ruby/object:Gem::Version
|
122
117
|
version: '0'
|
123
|
-
prerelease: false
|
124
118
|
type: :development
|
125
|
-
|
126
|
-
name: resque
|
119
|
+
prerelease: false
|
127
120
|
version_requirements: !ruby/object:Gem::Requirement
|
128
121
|
requirements:
|
129
|
-
- -
|
122
|
+
- - ">="
|
130
123
|
- !ruby/object:Gem::Version
|
131
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: resque
|
132
127
|
requirement: !ruby/object:Gem::Requirement
|
133
128
|
requirements:
|
134
|
-
- -
|
129
|
+
- - ">="
|
135
130
|
- !ruby/object:Gem::Version
|
136
131
|
version: '0'
|
137
|
-
prerelease: false
|
138
132
|
type: :development
|
139
|
-
|
140
|
-
name: delayed_job
|
133
|
+
prerelease: false
|
141
134
|
version_requirements: !ruby/object:Gem::Requirement
|
142
135
|
requirements:
|
143
|
-
- -
|
136
|
+
- - ">="
|
144
137
|
- !ruby/object:Gem::Version
|
145
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: delayed_job
|
146
141
|
requirement: !ruby/object:Gem::Requirement
|
147
142
|
requirements:
|
148
|
-
- -
|
143
|
+
- - ">="
|
149
144
|
- !ruby/object:Gem::Version
|
150
145
|
version: '0'
|
151
|
-
prerelease: false
|
152
146
|
type: :development
|
153
|
-
|
154
|
-
name: rake
|
147
|
+
prerelease: false
|
155
148
|
version_requirements: !ruby/object:Gem::Requirement
|
156
149
|
requirements:
|
157
|
-
- -
|
150
|
+
- - ">="
|
158
151
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rake
|
160
155
|
requirement: !ruby/object:Gem::Requirement
|
161
156
|
requirements:
|
162
|
-
- -
|
157
|
+
- - ">="
|
163
158
|
- !ruby/object:Gem::Version
|
164
159
|
version: 0.9.0
|
165
|
-
prerelease: false
|
166
160
|
type: :development
|
167
|
-
|
168
|
-
name: redis
|
161
|
+
prerelease: false
|
169
162
|
version_requirements: !ruby/object:Gem::Requirement
|
170
163
|
requirements:
|
171
|
-
- -
|
164
|
+
- - ">="
|
172
165
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
166
|
+
version: 0.9.0
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: redis
|
174
169
|
requirement: !ruby/object:Gem::Requirement
|
175
170
|
requirements:
|
176
|
-
- -
|
171
|
+
- - ">="
|
177
172
|
- !ruby/object:Gem::Version
|
178
173
|
version: '0'
|
179
|
-
prerelease: false
|
180
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
181
|
description: Rails plugin to catch and send exceptions to Rollbar
|
182
182
|
email:
|
183
183
|
- support@rollbar.com
|
@@ -186,8 +186,8 @@ executables:
|
|
186
186
|
extensions: []
|
187
187
|
extra_rdoc_files: []
|
188
188
|
files:
|
189
|
-
- .gitignore
|
190
|
-
- .travis.yml
|
189
|
+
- ".gitignore"
|
190
|
+
- ".travis.yml"
|
191
191
|
- Appraisals
|
192
192
|
- CHANGELOG.md
|
193
193
|
- Gemfile
|
@@ -306,6 +306,8 @@ files:
|
|
306
306
|
- spec/dummyapp/public/500.html
|
307
307
|
- spec/dummyapp/public/favicon.ico
|
308
308
|
- spec/dummyapp/script/rails
|
309
|
+
- spec/fixtures/file1
|
310
|
+
- spec/fixtures/file2
|
309
311
|
- spec/fixtures/payloads/message.json
|
310
312
|
- spec/fixtures/payloads/sample.trace.json
|
311
313
|
- spec/fixtures/payloads/sample.trace_chain.json
|
@@ -342,24 +344,24 @@ homepage: https://rollbar.com
|
|
342
344
|
licenses:
|
343
345
|
- MIT
|
344
346
|
metadata: {}
|
345
|
-
post_install_message:
|
347
|
+
post_install_message:
|
346
348
|
rdoc_options: []
|
347
349
|
require_paths:
|
348
350
|
- lib
|
349
351
|
required_ruby_version: !ruby/object:Gem::Requirement
|
350
352
|
requirements:
|
351
|
-
- -
|
353
|
+
- - ">="
|
352
354
|
- !ruby/object:Gem::Version
|
353
355
|
version: '0'
|
354
356
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
355
357
|
requirements:
|
356
|
-
- -
|
358
|
+
- - ">="
|
357
359
|
- !ruby/object:Gem::Version
|
358
360
|
version: '0'
|
359
361
|
requirements: []
|
360
|
-
rubyforge_project:
|
361
|
-
rubygems_version: 2.4.
|
362
|
-
signing_key:
|
362
|
+
rubyforge_project:
|
363
|
+
rubygems_version: 2.4.1
|
364
|
+
signing_key:
|
363
365
|
specification_version: 4
|
364
366
|
summary: Reports exceptions to Rollbar
|
365
367
|
test_files:
|
@@ -416,6 +418,8 @@ test_files:
|
|
416
418
|
- spec/dummyapp/public/500.html
|
417
419
|
- spec/dummyapp/public/favicon.ico
|
418
420
|
- spec/dummyapp/script/rails
|
421
|
+
- spec/fixtures/file1
|
422
|
+
- spec/fixtures/file2
|
419
423
|
- spec/fixtures/payloads/message.json
|
420
424
|
- spec/fixtures/payloads/sample.trace.json
|
421
425
|
- spec/fixtures/payloads/sample.trace_chain.json
|