honeybadger 2.3.1 → 2.3.2.beta.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/CHANGELOG.md +6 -0
- data/README.md +2 -2
- data/lib/honeybadger/notice.rb +2 -2
- data/lib/honeybadger/util/sanitizer.rb +9 -14
- data/lib/honeybadger/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38da9f662383d281ad7a322daa0487915c2510aa
|
4
|
+
data.tar.gz: 11addbaca8a3be842d3d87a0525ef858a9676684
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54e65efde630cf3282af4218edde463f3b92059874551a0c852e48120657ae86bf9e4e9abc35f39387709c7d32e11766313c6f224d674967fda5beb59c5c30e4
|
7
|
+
data.tar.gz: 4993751cfb80e7c42a402275e8f233b05f72dbb5850c69b675dd10e0824ab2b42f0d5075ab00fbd743ad668a5d376e72246f618217cace90a4cce10cb6917238
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,12 @@ adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
6
6
|
## [Unreleased][unreleased]
|
7
7
|
|
8
|
+
## [2.3.2.beta.1] - 2015-12-07
|
9
|
+
## Fixed
|
10
|
+
- Be stricter when sanitizing recursive objects (allow only `Hash`, `Array`,
|
11
|
+
`Set`). This fixes a bug where some gems (such as the dropbox gem)
|
12
|
+
monkeypatch `#to_hash` on `Array`.
|
13
|
+
|
8
14
|
## [2.3.1] - 2015-11-20
|
9
15
|
## Fixed
|
10
16
|
- Handle invalid utf8 in ActiveRecord SQL queries.
|
data/README.md
CHANGED
@@ -39,7 +39,7 @@ Integrating with other libraries/frameworks is simple! [See the documentation](h
|
|
39
39
|
| Resque | any | yes |
|
40
40
|
| Delayed Job | any | yes |
|
41
41
|
|
42
|
-
You can integrate honeybadger into any Ruby script
|
42
|
+
You can integrate honeybadger into any Ruby script via the `Honeybadger.notify` method.
|
43
43
|
|
44
44
|
## Getting Started
|
45
45
|
|
@@ -329,7 +329,7 @@ end
|
|
329
329
|
|
330
330
|
### `Honeybadger.exception_filter()`: Programmatically ignore exceptions
|
331
331
|
|
332
|
-
This method lets you add a callback that will be run every time an exception is about to be reported to Honeybadger. If your callback returns a
|
332
|
+
This method lets you add a callback that will be run every time an exception is about to be reported to Honeybadger. If your callback returns a truthy value, the exception won't be reported. [View full method documentation](http://www.rubydoc.info/gems/honeybadger/Honeybadger%3Aexception_filter)
|
333
333
|
|
334
334
|
#### Use this method if:
|
335
335
|
|
data/lib/honeybadger/notice.rb
CHANGED
@@ -174,7 +174,7 @@ module Honeybadger
|
|
174
174
|
token: id,
|
175
175
|
class: s(error_class),
|
176
176
|
message: s(error_message),
|
177
|
-
backtrace: s(backtrace),
|
177
|
+
backtrace: s(backtrace.to_a),
|
178
178
|
source: s(source),
|
179
179
|
fingerprint: s(fingerprint),
|
180
180
|
tags: s(tags),
|
@@ -447,7 +447,7 @@ module Honeybadger
|
|
447
447
|
c << {
|
448
448
|
class: e.class.name,
|
449
449
|
message: e.message,
|
450
|
-
backtrace: parse_backtrace(e.backtrace || caller)
|
450
|
+
backtrace: parse_backtrace(e.backtrace || caller).to_a
|
451
451
|
}
|
452
452
|
i += 1
|
453
453
|
end
|
@@ -3,8 +3,6 @@ require 'set'
|
|
3
3
|
module Honeybadger
|
4
4
|
module Util
|
5
5
|
class Sanitizer
|
6
|
-
OBJECT_WHITELIST = [Hash, Array, String, Integer, Float, TrueClass, FalseClass, NilClass]
|
7
|
-
|
8
6
|
FILTERED_REPLACEMENT = '[FILTERED]'.freeze
|
9
7
|
|
10
8
|
TRUNCATION_REPLACEMENT = '[TRUNCATED]'.freeze
|
@@ -26,15 +24,14 @@ module Honeybadger
|
|
26
24
|
end
|
27
25
|
|
28
26
|
def sanitize(data, depth = 0, stack = nil)
|
29
|
-
if
|
27
|
+
if data.kind_of?(Hash) || data.kind_of?(Array) || data.kind_of?(Set)
|
30
28
|
return '[possible infinite recursion halted]' if stack && stack.include?(data.object_id)
|
31
29
|
stack = stack ? stack.dup : Set.new
|
32
30
|
stack << data.object_id
|
33
31
|
end
|
34
32
|
|
35
|
-
|
36
|
-
|
37
|
-
elsif data.respond_to?(:to_hash)
|
33
|
+
case data
|
34
|
+
when Hash
|
38
35
|
return '[max depth reached]' if depth >= max_depth
|
39
36
|
hash = data.to_hash
|
40
37
|
new_hash = {}
|
@@ -47,14 +44,16 @@ module Honeybadger
|
|
47
44
|
end
|
48
45
|
end
|
49
46
|
new_hash
|
50
|
-
|
47
|
+
when Array, Set
|
51
48
|
return '[max depth reached]' if depth >= max_depth
|
52
|
-
data.
|
49
|
+
data.to_a.map do |value|
|
53
50
|
sanitize(value, depth+1, stack)
|
54
51
|
end.compact
|
55
|
-
|
52
|
+
when Numeric, TrueClass, FalseClass, NilClass
|
56
53
|
data
|
57
|
-
|
54
|
+
when String
|
55
|
+
self.class.sanitize_string(data.to_s)
|
56
|
+
else # all other objects:
|
58
57
|
self.class.sanitize_string(data.to_s)
|
59
58
|
end
|
60
59
|
end
|
@@ -119,10 +118,6 @@ module Honeybadger
|
|
119
118
|
|
120
119
|
attr_reader :max_depth, :filters
|
121
120
|
|
122
|
-
def recursive?(data)
|
123
|
-
data.respond_to?(:to_hash) || data.respond_to?(:to_ary)
|
124
|
-
end
|
125
|
-
|
126
121
|
def filter_key?(key)
|
127
122
|
return false unless filters
|
128
123
|
|
data/lib/honeybadger/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: honeybadger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.1
|
4
|
+
version: 2.3.2.beta.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Honeybadger Industries LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Make managing application errors a more pleasant experience.
|
14
14
|
email:
|
@@ -134,9 +134,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
134
|
version: 1.9.3
|
135
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- - "
|
137
|
+
- - ">"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
139
|
+
version: 1.3.1
|
140
140
|
requirements: []
|
141
141
|
rubyforge_project:
|
142
142
|
rubygems_version: 2.4.5
|