airbrake-ruby 1.7.0 → 1.7.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 +4 -4
- data/lib/airbrake-ruby.rb +1 -1
- data/lib/airbrake-ruby/filter_chain.rb +12 -1
- data/lib/airbrake-ruby/version.rb +1 -1
- data/spec/filter_chain_spec.rb +15 -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: bbc56120094dd5ebca9b489ba613aca53d696da3
|
4
|
+
data.tar.gz: d0f207390f282a459a2a80f13223b7c61de5be09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a42ae86774fa693ac7678e6e4a9bc0e6014992f4d1c8ba91b08f615b40fbd36cdbaf8bae42163d7bbb574c3f25292c92fc10e3707c13b42a35706a01ca2de682
|
7
|
+
data.tar.gz: 4eb63a597c488410fe44972ab6077b11e7d296788e431fda2e956b5fee9f2f58133d0e172f32667d5d1a56aac7b1478d288d5315541c0f0be37e0c87720f9a23
|
data/lib/airbrake-ruby.rb
CHANGED
@@ -15,12 +15,12 @@ require 'airbrake-ruby/response'
|
|
15
15
|
require 'airbrake-ruby/nested_exception'
|
16
16
|
require 'airbrake-ruby/notice'
|
17
17
|
require 'airbrake-ruby/backtrace'
|
18
|
-
require 'airbrake-ruby/filter_chain'
|
19
18
|
require 'airbrake-ruby/payload_truncator'
|
20
19
|
require 'airbrake-ruby/filters'
|
21
20
|
require 'airbrake-ruby/filters/keys_filter'
|
22
21
|
require 'airbrake-ruby/filters/keys_whitelist'
|
23
22
|
require 'airbrake-ruby/filters/keys_blacklist'
|
23
|
+
require 'airbrake-ruby/filter_chain'
|
24
24
|
require 'airbrake-ruby/notifier'
|
25
25
|
|
26
26
|
##
|
@@ -25,6 +25,15 @@ module Airbrake
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
##
|
29
|
+
# Filters to be executed last. By this time all permutations on a notice
|
30
|
+
# should be done, so the final step is to blacklist/whitelist keys.
|
31
|
+
# @return [Array<Class>]
|
32
|
+
KEYS_FILTERS = [
|
33
|
+
Airbrake::Filters::KeysBlacklist,
|
34
|
+
Airbrake::Filters::KeysWhitelist
|
35
|
+
].freeze
|
36
|
+
|
28
37
|
##
|
29
38
|
# Skip over SystemExit exceptions, because they're just noise.
|
30
39
|
# @return [Proc]
|
@@ -38,6 +47,7 @@ module Airbrake
|
|
38
47
|
# @param [Airbrake::Config] config
|
39
48
|
def initialize(config)
|
40
49
|
@filters = []
|
50
|
+
@keys_filters = []
|
41
51
|
|
42
52
|
[SYSTEM_EXIT_FILTER, GEM_ROOT_FILTER].each do |filter|
|
43
53
|
add_filter(filter)
|
@@ -51,6 +61,7 @@ module Airbrake
|
|
51
61
|
# Adds a filter to the filter chain.
|
52
62
|
# @param [#call] filter The filter object (proc, class, module, etc)
|
53
63
|
def add_filter(filter)
|
64
|
+
return @keys_filters << filter if KEYS_FILTERS.include?(filter.class)
|
54
65
|
@filters << filter
|
55
66
|
end
|
56
67
|
|
@@ -61,7 +72,7 @@ module Airbrake
|
|
61
72
|
# @param [Airbrake::Notice] notice The notice to be filtered
|
62
73
|
# @return [void]
|
63
74
|
def refine(notice)
|
64
|
-
@filters.each do |filter|
|
75
|
+
(@filters + @keys_filters).each do |filter|
|
65
76
|
break if notice.ignored?
|
66
77
|
filter.call(notice)
|
67
78
|
end
|
data/spec/filter_chain_spec.rb
CHANGED
@@ -39,6 +39,21 @@ RSpec.describe Airbrake::FilterChain do
|
|
39
39
|
|
40
40
|
expect(nums).to eq([0, 1, 2])
|
41
41
|
end
|
42
|
+
|
43
|
+
it "executes keys filters last" do
|
44
|
+
notice[:params] = { bingo: 'bango' }
|
45
|
+
blacklist = Airbrake::Filters::KeysBlacklist.new(config.logger, :bingo)
|
46
|
+
@chain.add_filter(blacklist)
|
47
|
+
|
48
|
+
@chain.add_filter(
|
49
|
+
proc do |notice|
|
50
|
+
expect(notice[:params][:bingo]).to eq('bango')
|
51
|
+
end
|
52
|
+
)
|
53
|
+
|
54
|
+
@chain.refine(notice)
|
55
|
+
expect(notice[:params][:bingo]).to eq('[Filtered]')
|
56
|
+
end
|
42
57
|
end
|
43
58
|
|
44
59
|
describe "default backtrace filters" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: airbrake-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airbrake Technologies, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|