airbrake 4.3.2 → 4.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +15 -0
- data/lib/airbrake.rb +2 -0
- data/lib/airbrake/notice.rb +18 -3
- data/lib/airbrake/utils/params_cleaner.rb +1 -1
- data/lib/airbrake/version.rb +1 -1
- data/test/notice_test.rb +7 -0
- data/test/params_cleaner_test.rb +11 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44a934004ed694e6b4c9b0c210e026646106e436
|
4
|
+
data.tar.gz: e3f294e32503a5dad98e440069f3a61a0311f0d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3bbe64f8da080d243f96e25ffa94fa8bff057b610f3cd39fa95a659e8ca251af01483c8cd0332fdb27af4de5aacdd2bde484ae33d8c1257d414c5c00610882d
|
7
|
+
data.tar.gz: 855f6eee69fdf83c3bc0368b3725961ecb990bfb988843fbcb9c24a3c8b6cb15d788cc1b634bc4e8041e05983adc0686c79feb73da3a6899e259c34fb2ca3ba5
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
Version 4.3.3 - 2015-10-20 19:33:27 -0500
|
2
|
+
===============================================================================
|
3
|
+
|
4
|
+
Daniel Loy (1):
|
5
|
+
don't break `clean_params` when processing nested array (as seen in action_dispatch.cookies from cgi-data)
|
6
|
+
|
7
|
+
Joe Van Dyk (1):
|
8
|
+
Add way to ignore all the exceptions
|
9
|
+
|
10
|
+
Kyrylo Silin (2):
|
11
|
+
Merge pull request #432 from loybert/fix/dont-break-when-filtering-arrays-of-arrays
|
12
|
+
Merge pull request #433 from Tanga/ignore_exceptions
|
13
|
+
|
14
|
+
|
1
15
|
Version 4.3.2 - 2015-10-16 21:24:49 -0500
|
2
16
|
===============================================================================
|
3
17
|
|
@@ -1642,5 +1656,6 @@ Nick Quaranto (3):
|
|
1642
1656
|
|
1643
1657
|
|
1644
1658
|
|
1659
|
+
|
1645
1660
|
|
1646
1661
|
|
data/lib/airbrake.rb
CHANGED
@@ -172,9 +172,11 @@ module Airbrake
|
|
172
172
|
end
|
173
173
|
|
174
174
|
def build_notice_for(exception, opts = {})
|
175
|
+
exception_classes = [exception.class.to_s]
|
175
176
|
exception = unwrap_exception(exception)
|
176
177
|
opts = opts.merge(:exception => exception) if exception.is_a?(Exception)
|
177
178
|
opts = opts.merge(exception.to_hash) if exception.respond_to?(:to_hash)
|
179
|
+
opts = opts.merge(exception_classes: exception_classes)
|
178
180
|
Notice.new(configuration.merge(opts))
|
179
181
|
end
|
180
182
|
|
data/lib/airbrake/notice.rb
CHANGED
@@ -94,6 +94,9 @@ module Airbrake
|
|
94
94
|
# Instance that's used for cleaning out data that should be filtered out, should respond to #clean
|
95
95
|
attr_accessor :cleaner
|
96
96
|
|
97
|
+
# An array of the exception classes for this error (including wrapped ones)
|
98
|
+
attr_reader :exception_classes
|
99
|
+
|
97
100
|
public
|
98
101
|
|
99
102
|
def initialize(args)
|
@@ -102,7 +105,6 @@ module Airbrake
|
|
102
105
|
@api_key = args[:api_key]
|
103
106
|
@project_root = args[:project_root]
|
104
107
|
@url = args[:url] || rack_env(:url)
|
105
|
-
|
106
108
|
@notifier_name = args[:notifier_name]
|
107
109
|
@notifier_version = args[:notifier_version]
|
108
110
|
@notifier_url = args[:notifier_url]
|
@@ -131,6 +133,14 @@ module Airbrake
|
|
131
133
|
@hostname = local_hostname
|
132
134
|
@user = args[:user] || {}
|
133
135
|
|
136
|
+
@exception_classes= Array(args[:exception_classes])
|
137
|
+
if @exception
|
138
|
+
@exception_classes << @exception.class
|
139
|
+
end
|
140
|
+
if @error_class
|
141
|
+
@exception_classes << @error_class
|
142
|
+
end
|
143
|
+
|
134
144
|
|
135
145
|
also_use_rack_params_filters
|
136
146
|
find_session_data
|
@@ -251,8 +261,13 @@ module Airbrake
|
|
251
261
|
|
252
262
|
# Determines if this notice should be ignored
|
253
263
|
def ignore?
|
254
|
-
|
255
|
-
|
264
|
+
exception_classes.each do |klass|
|
265
|
+
if ignored_class_names.include?(klass)
|
266
|
+
return true
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
ignore_by_filters.any? {|filter| filter.call(self) }
|
256
271
|
end
|
257
272
|
|
258
273
|
# Allows properties to be accessed using a hash-like syntax
|
data/lib/airbrake/version.rb
CHANGED
data/test/notice_test.rb
CHANGED
@@ -366,6 +366,13 @@ class NoticeTest < Test::Unit::TestCase
|
|
366
366
|
assert !notice.ignore?
|
367
367
|
end
|
368
368
|
|
369
|
+
should "ignore an wrapped exception matching ignore filters" do
|
370
|
+
notice = build_notice(error_class: "NotIgnored",
|
371
|
+
exception_classes: ["Ignored", "NotIgnored"],
|
372
|
+
ignore: ["Ignored"])
|
373
|
+
assert notice.ignore?
|
374
|
+
end
|
375
|
+
|
369
376
|
should "ignore an exception with a matching error class" do
|
370
377
|
notice = build_notice(:error_class => 'ArgumentError',
|
371
378
|
:ignore => [ArgumentError])
|
data/test/params_cleaner_test.rb
CHANGED
@@ -190,4 +190,15 @@ class ParamsCleanerTest < Test::Unit::TestCase
|
|
190
190
|
assert_match(/\A#<(Temp)?[Ff]ile:0x.+>\z/, clean_params.parameters[:files][0])
|
191
191
|
assert_match(/\A#<IO:0x.+>\z/, clean_params.parameters[:files][1])
|
192
192
|
end
|
193
|
+
|
194
|
+
should "not break on filtering multi-dimensional array as possible in action_dispatch.cookies" do
|
195
|
+
original = { 'cgi_cookies_to_filter' => [['any_cookie_key', 'some_cookie_value'], ['secret', 'some_secret_value']] }
|
196
|
+
clean_params = clean(:params_filters => [:secret],
|
197
|
+
:params_whitelist_filters => [:secret],
|
198
|
+
:parameters => original)
|
199
|
+
assert_nothing_raised do
|
200
|
+
clean_params.send(:parameters)
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
193
204
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: airbrake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.3.
|
4
|
+
version: 4.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airbrake
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: builder
|