rollbar 1.4.5 → 1.5.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.
- data/CHANGELOG.md +11 -0
- data/README.md +2 -2
- data/lib/rollbar.rb +8 -1
- data/lib/rollbar/version.rb +1 -1
- data/spec/rollbar_spec.rb +23 -10
- data/spec/spec_helper.rb +1 -0
- data/spec/support/encoding_helpers.rb +8 -0
- metadata +89 -27
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 1.5.0
|
4
|
+
|
5
|
+
Bug fixes:
|
6
|
+
|
7
|
+
- Fixed support for extended unicode characters. See [#234](https://github.com/rollbar/rollbar-gem/pull/234)
|
8
|
+
|
9
|
+
Possible breaking changes:
|
10
|
+
|
11
|
+
- Some characters that previously were stripped are now encoded. This could cause some events to be grouped into new items by Rollbar.
|
12
|
+
|
13
|
+
|
3
14
|
## 1.4.5
|
4
15
|
|
5
16
|
Bug fixes:
|
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
|
Ruby gem for reporting exceptions, errors, and log messages to [Rollbar](https://rollbar.com).
|
@@ -9,7 +9,7 @@ Ruby gem for reporting exceptions, errors, and log messages to [Rollbar](https:/
|
|
9
9
|
|
10
10
|
Add this line to your application's Gemfile:
|
11
11
|
|
12
|
-
gem 'rollbar', '~> 1.
|
12
|
+
gem 'rollbar', '~> 1.5.0
|
13
13
|
|
14
14
|
And then execute:
|
15
15
|
|
data/lib/rollbar.rb
CHANGED
@@ -423,7 +423,14 @@ module Rollbar
|
|
423
423
|
value = object.to_s
|
424
424
|
|
425
425
|
if value.respond_to? :encode
|
426
|
-
|
426
|
+
options = { :invalid => :replace, :undef => :replace, :replace => '' }
|
427
|
+
ascii_encodings = [Encoding.find('US-ASCII'), Encoding.find('ASCII-8BIT')]
|
428
|
+
|
429
|
+
args = ['UTF-8']
|
430
|
+
args << 'binary' if ascii_encodings.include?(value.encoding)
|
431
|
+
args << options
|
432
|
+
|
433
|
+
encoded_value = value.encode(*args)
|
427
434
|
else
|
428
435
|
encoded_value = ::Iconv.conv('UTF-8//IGNORE', 'UTF-8', value)
|
429
436
|
end
|
data/lib/rollbar/version.rb
CHANGED
data/spec/rollbar_spec.rb
CHANGED
@@ -943,7 +943,7 @@ describe Rollbar do
|
|
943
943
|
|
944
944
|
context 'with invalid utf8 encoding' do
|
945
945
|
let(:extra) do
|
946
|
-
{ :extra => "bad value 1\255" }
|
946
|
+
{ :extra => force_to_ascii("bad value 1\255") }
|
947
947
|
end
|
948
948
|
|
949
949
|
it 'removes te invalid characteres' do
|
@@ -1336,27 +1336,40 @@ describe Rollbar do
|
|
1336
1336
|
end
|
1337
1337
|
|
1338
1338
|
context 'enforce_valid_utf8' do
|
1339
|
+
context 'with utf8 string and ruby > 1.8' do
|
1340
|
+
next unless String.instance_methods.include?(:force_encoding)
|
1341
|
+
|
1342
|
+
let(:payload) { { :foo => 'Изменение' } }
|
1343
|
+
|
1344
|
+
it 'just returns the same string' do
|
1345
|
+
payload_copy = payload.clone
|
1346
|
+
notifier.send(:enforce_valid_utf8, payload_copy)
|
1347
|
+
|
1348
|
+
expect(payload_copy[:foo]).to be_eql('Изменение')
|
1349
|
+
end
|
1350
|
+
end
|
1351
|
+
|
1339
1352
|
it 'should replace invalid utf8 values' do
|
1340
|
-
bad_key = "inner \x92bad key"
|
1341
|
-
bad_key.force_encoding('ASCII-8BIT') if bad_key.respond_to?('force_encoding')
|
1353
|
+
bad_key = force_to_ascii("inner \x92bad key")
|
1342
1354
|
|
1343
1355
|
payload = {
|
1344
|
-
:bad_value => "bad value 1\255",
|
1345
|
-
:bad_value_2 => "bad\255 value 2",
|
1346
|
-
"bad\255 key" => "good value",
|
1356
|
+
:bad_value => force_to_ascii("bad value 1\255"),
|
1357
|
+
:bad_value_2 => force_to_ascii("bad\255 value 2"),
|
1358
|
+
force_to_ascii("bad\255 key") => "good value",
|
1347
1359
|
:hash => {
|
1348
|
-
:inner_bad_value => "\255\255bad value 3",
|
1360
|
+
:inner_bad_value => force_to_ascii("\255\255bad value 3"),
|
1349
1361
|
bad_key.to_sym => 'inner good value',
|
1350
|
-
"bad array key\255" => [
|
1362
|
+
force_to_ascii("bad array key\255") => [
|
1351
1363
|
'good array value 1',
|
1352
|
-
"bad\255 array value 1\255",
|
1364
|
+
force_to_ascii("bad\255 array value 1\255"),
|
1353
1365
|
{
|
1354
|
-
:inner_inner_bad => "bad inner \255inner value"
|
1366
|
+
:inner_inner_bad => force_to_ascii("bad inner \255inner value")
|
1355
1367
|
}
|
1356
1368
|
]
|
1357
1369
|
}
|
1358
1370
|
}
|
1359
1371
|
|
1372
|
+
|
1360
1373
|
payload_copy = payload.clone
|
1361
1374
|
notifier.send(:enforce_valid_utf8, payload_copy)
|
1362
1375
|
|
data/spec/spec_helper.rb
CHANGED
@@ -17,6 +17,7 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
|
17
17
|
RSpec.configure do |config|
|
18
18
|
config.include(NotifierHelpers)
|
19
19
|
config.include(FixtureHelpers)
|
20
|
+
config.include(EncodingHelpers)
|
20
21
|
|
21
22
|
config.color_enabled = true
|
22
23
|
config.formatter = 'documentation'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rollbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-04-
|
12
|
+
date: 2015-04-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '1.3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.3'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rails
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 3.0.0
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.0.0
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rspec-rails
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 2.14.0
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.14.0
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: database_cleaner
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ~>
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: 1.0.0
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.0.0
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: girl_friday
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: 0.11.1
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.11.1
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: sucker_punch
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: 1.0.0
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.0.0
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: sidekiq
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: 2.13.0
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 2.13.0
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: genspec
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: 0.2.8
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 0.2.8
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: sinatra
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ! '>='
|
@@ -109,10 +149,15 @@ dependencies:
|
|
109
149
|
version: '0'
|
110
150
|
type: :development
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
113
158
|
- !ruby/object:Gem::Dependency
|
114
159
|
name: resque
|
115
|
-
requirement:
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
116
161
|
none: false
|
117
162
|
requirements:
|
118
163
|
- - ! '>='
|
@@ -120,10 +165,15 @@ dependencies:
|
|
120
165
|
version: '0'
|
121
166
|
type: :development
|
122
167
|
prerelease: false
|
123
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
124
174
|
- !ruby/object:Gem::Dependency
|
125
175
|
name: delayed_job
|
126
|
-
requirement:
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
127
177
|
none: false
|
128
178
|
requirements:
|
129
179
|
- - ! '>='
|
@@ -131,10 +181,15 @@ dependencies:
|
|
131
181
|
version: '0'
|
132
182
|
type: :development
|
133
183
|
prerelease: false
|
134
|
-
version_requirements:
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
135
190
|
- !ruby/object:Gem::Dependency
|
136
191
|
name: rake
|
137
|
-
requirement:
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
138
193
|
none: false
|
139
194
|
requirements:
|
140
195
|
- - ! '>='
|
@@ -142,7 +197,12 @@ dependencies:
|
|
142
197
|
version: 0.9.0
|
143
198
|
type: :development
|
144
199
|
prerelease: false
|
145
|
-
version_requirements:
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: 0.9.0
|
146
206
|
description: Rails plugin to catch and send exceptions to Rollbar
|
147
207
|
email:
|
148
208
|
- support@rollbar.com
|
@@ -287,6 +347,7 @@ files:
|
|
287
347
|
- spec/rollbar_spec.rb
|
288
348
|
- spec/spec_helper.rb
|
289
349
|
- spec/support/cause_exception.rb
|
350
|
+
- spec/support/encoding_helpers.rb
|
290
351
|
- spec/support/fixture_helpers.rb
|
291
352
|
- spec/support/get_ip_raising.rb
|
292
353
|
- spec/support/notifier_helpers.rb
|
@@ -312,7 +373,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
312
373
|
version: '0'
|
313
374
|
requirements: []
|
314
375
|
rubyforge_project:
|
315
|
-
rubygems_version: 1.8.
|
376
|
+
rubygems_version: 1.8.23
|
316
377
|
signing_key:
|
317
378
|
specification_version: 3
|
318
379
|
summary: Reports exceptions to Rollbar
|
@@ -393,6 +454,7 @@ test_files:
|
|
393
454
|
- spec/rollbar_spec.rb
|
394
455
|
- spec/spec_helper.rb
|
395
456
|
- spec/support/cause_exception.rb
|
457
|
+
- spec/support/encoding_helpers.rb
|
396
458
|
- spec/support/fixture_helpers.rb
|
397
459
|
- spec/support/get_ip_raising.rb
|
398
460
|
- spec/support/notifier_helpers.rb
|