honeybadger 1.7.0 → 1.8.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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +22 -0
- data/Gemfile.lock +1 -1
- data/MIT-LICENSE +1 -0
- data/README.md +13 -0
- data/gemfiles/rack.gemfile.lock +1 -1
- data/gemfiles/rails2.3.gemfile.lock +1 -1
- data/gemfiles/rails3.0.gemfile.lock +1 -1
- data/gemfiles/rails3.1.gemfile.lock +1 -1
- data/gemfiles/rails3.2.gemfile.lock +1 -1
- data/gemfiles/rails4.gemfile.lock +1 -1
- data/gemfiles/rake.gemfile.lock +1 -1
- data/gemfiles/sinatra.gemfile.lock +1 -1
- data/honeybadger.gemspec +3 -2
- data/lib/honeybadger.rb +8 -4
- data/lib/honeybadger/configuration.rb +6 -1
- data/lib/honeybadger/notice.rb +45 -12
- data/lib/honeybadger/stats.rb +29 -0
- data/test/unit/configuration_test.rb +4 -1
- data/test/unit/notice_test.rb +20 -0
- metadata +21 -49
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cbb055f81d8f22c73d15a07319416223dc2088e8
|
4
|
+
data.tar.gz: 97d3c1ea643d868e725df494d10710bf353a0cd0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b59eabe45dd37a73fbc3f5977e1991c84b976b7907d908d6058849d953fca3df3b13c8678e1c1a18fb121854df7d067ec59224e936a9382219fc651bd717c345
|
7
|
+
data.tar.gz: 851867be99923a9b115fde0a06934dae4fe04b4424038c41da5b70cb10e625014298aef0ad9475c891b8482fa44705d8625d7602b13848abb787dad3287b3c4b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
## Honeybadger 1.8.0 ##
|
2
|
+
|
3
|
+
* Report memory and load stats
|
4
|
+
|
5
|
+
*Benjamin Curtis*
|
6
|
+
|
7
|
+
* Use HONEYBADGER_API_KEY as default value for api_key
|
8
|
+
|
9
|
+
*Benjamin Curtis*
|
10
|
+
|
11
|
+
* Prefer notice args to exception attributes
|
12
|
+
|
13
|
+
*Joshua Wood*
|
14
|
+
|
15
|
+
* Trim size of notice message to 1k
|
16
|
+
|
17
|
+
*Joshua Wood*
|
18
|
+
|
19
|
+
* Make hostname overridable in configuration.
|
20
|
+
|
21
|
+
*Joshua Wood*
|
22
|
+
|
1
23
|
## Honeybadger 1.7.0 ##
|
2
24
|
|
3
25
|
* Added a custom grouping option
|
data/Gemfile.lock
CHANGED
data/MIT-LICENSE
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
Copyright (c) 2007 - 2012, Exceptional DBA Airbrake.io
|
2
2
|
Portions Copyright (c) 2012-2013, Honeybadger Industries LLC
|
3
|
+
Portions Copyright (c) 2009 Brenton Fletcher (http://i.bloople.net i@bloople.net)
|
3
4
|
|
4
5
|
NOTE: All code contained herein that is copyright Exceptional DBA Airbrake.io was available
|
5
6
|
under the MIT license (listed below) on or before November 6, 2012.
|
data/README.md
CHANGED
@@ -541,6 +541,19 @@ Honeybadger.configure do |config|
|
|
541
541
|
end
|
542
542
|
```
|
543
543
|
|
544
|
+
## Setting the hostname
|
545
|
+
|
546
|
+
The hostname for the local server is determined by `Socket.gethostname`
|
547
|
+
by default, but can be overridden using the `hostname` configuration
|
548
|
+
option:
|
549
|
+
|
550
|
+
```ruby
|
551
|
+
Honeybadger.configure do |config|
|
552
|
+
# ...
|
553
|
+
config.hostname = `hostname`
|
554
|
+
end
|
555
|
+
```
|
556
|
+
|
544
557
|
## Testing
|
545
558
|
|
546
559
|
When you run your tests, you might notice that the Honeybadger service is recording
|
data/gemfiles/rack.gemfile.lock
CHANGED
data/gemfiles/rake.gemfile.lock
CHANGED
data/honeybadger.gemspec
CHANGED
@@ -4,8 +4,8 @@ Gem::Specification.new do |s|
|
|
4
4
|
s.rubygems_version = '1.3.5'
|
5
5
|
|
6
6
|
s.name = 'honeybadger'
|
7
|
-
s.version = '1.
|
8
|
-
s.date = '2013-
|
7
|
+
s.version = '1.8.0'
|
8
|
+
s.date = '2013-08-14'
|
9
9
|
|
10
10
|
s.summary = 'Error reports you can be happy about.'
|
11
11
|
s.description = 'Make managing application errors a more pleasant experience.'
|
@@ -98,6 +98,7 @@ Gem::Specification.new do |s|
|
|
98
98
|
lib/honeybadger/rake_handler.rb
|
99
99
|
lib/honeybadger/sender.rb
|
100
100
|
lib/honeybadger/shared_tasks.rb
|
101
|
+
lib/honeybadger/stats.rb
|
101
102
|
lib/honeybadger/tasks.rb
|
102
103
|
lib/honeybadger_tasks.rb
|
103
104
|
lib/rails/generators/honeybadger/honeybadger_generator.rb
|
data/lib/honeybadger.rb
CHANGED
@@ -9,11 +9,12 @@ require 'honeybadger/backtrace'
|
|
9
9
|
require 'honeybadger/notice'
|
10
10
|
require 'honeybadger/rack'
|
11
11
|
require 'honeybadger/sender'
|
12
|
+
require 'honeybadger/stats'
|
12
13
|
|
13
14
|
require 'honeybadger/railtie' if defined?(Rails::Railtie)
|
14
15
|
|
15
16
|
module Honeybadger
|
16
|
-
VERSION = '1.
|
17
|
+
VERSION = '1.8.0'
|
17
18
|
LOG_PREFIX = "** [Honeybadger] "
|
18
19
|
|
19
20
|
HEADERS = {
|
@@ -129,9 +130,12 @@ module Honeybadger
|
|
129
130
|
result
|
130
131
|
end
|
131
132
|
|
132
|
-
def context(hash =
|
133
|
-
|
134
|
-
|
133
|
+
def context(hash = nil)
|
134
|
+
unless hash.nil?
|
135
|
+
Thread.current[:honeybadger_context] ||= {}
|
136
|
+
Thread.current[:honeybadger_context].merge!(hash)
|
137
|
+
end
|
138
|
+
|
135
139
|
self
|
136
140
|
end
|
137
141
|
|
@@ -6,7 +6,7 @@ module Honeybadger
|
|
6
6
|
:params_filters, :project_root, :port, :protocol, :proxy_host, :proxy_pass,
|
7
7
|
:proxy_port, :proxy_user, :secure, :use_system_ssl_cert_chain, :framework,
|
8
8
|
:user_information, :rescue_rake_exceptions, :source_extract_radius,
|
9
|
-
:send_request_session, :debug, :fingerprint].freeze
|
9
|
+
:send_request_session, :debug, :fingerprint, :hostname].freeze
|
10
10
|
|
11
11
|
# The API key for your project, found on the project edit form.
|
12
12
|
attr_accessor :api_key
|
@@ -104,6 +104,9 @@ module Honeybadger
|
|
104
104
|
# A Proc object used to generate optional fingerprint
|
105
105
|
attr_writer :fingerprint
|
106
106
|
|
107
|
+
# Override the hostname of the local server (optional)
|
108
|
+
attr_accessor :hostname
|
109
|
+
|
107
110
|
DEFAULT_PARAMS_FILTERS = %w(password password_confirmation).freeze
|
108
111
|
|
109
112
|
DEFAULT_BACKTRACE_FILTERS = [
|
@@ -137,6 +140,7 @@ module Honeybadger
|
|
137
140
|
alias_method :use_system_ssl_cert_chain?, :use_system_ssl_cert_chain
|
138
141
|
|
139
142
|
def initialize
|
143
|
+
@api_key = ENV['HONEYBADGER_API_KEY']
|
140
144
|
@secure = true
|
141
145
|
@use_system_ssl_cert_chain = false
|
142
146
|
@host = 'api.honeybadger.io'
|
@@ -157,6 +161,7 @@ module Honeybadger
|
|
157
161
|
@source_extract_radius = 2
|
158
162
|
@send_request_session = true
|
159
163
|
@debug = false
|
164
|
+
@hostname = nil
|
160
165
|
end
|
161
166
|
|
162
167
|
# Public: Takes a block and adds it to the list of backtrace filters. When
|
data/lib/honeybadger/notice.rb
CHANGED
@@ -79,6 +79,9 @@ module Honeybadger
|
|
79
79
|
# The host name where this error occurred (if any)
|
80
80
|
attr_reader :hostname
|
81
81
|
|
82
|
+
# System stats
|
83
|
+
attr_reader :stats
|
84
|
+
|
82
85
|
def initialize(args)
|
83
86
|
self.args = args
|
84
87
|
self.exception = args[:exception]
|
@@ -105,11 +108,14 @@ module Honeybadger
|
|
105
108
|
self.backtrace = Backtrace.parse(exception_attribute(:backtrace, caller), :filters => self.backtrace_filters)
|
106
109
|
self.fingerprint = hashed_fingerprint
|
107
110
|
self.error_class = exception_attribute(:error_class) {|exception| exception.class.name }
|
108
|
-
self.error_message =
|
109
|
-
|
111
|
+
self.error_message = trim_size(1024) do
|
112
|
+
exception_attribute(:error_message, 'Notification') do |exception|
|
113
|
+
"#{exception.class.name}: #{exception.message}"
|
114
|
+
end
|
110
115
|
end
|
111
116
|
|
112
117
|
self.hostname = local_hostname
|
118
|
+
self.stats = Stats.all
|
113
119
|
|
114
120
|
self.source_extract_radius = args[:source_extract_radius] || 2
|
115
121
|
self.source_extract = extract_source_from_backtrace
|
@@ -162,7 +168,8 @@ module Honeybadger
|
|
162
168
|
:server => {
|
163
169
|
:project_root => project_root,
|
164
170
|
:environment_name => environment_name,
|
165
|
-
:hostname => hostname
|
171
|
+
:hostname => hostname,
|
172
|
+
:stats => stats
|
166
173
|
}
|
167
174
|
}
|
168
175
|
end
|
@@ -223,21 +230,24 @@ module Honeybadger
|
|
223
230
|
:error_message, :backtrace_filters, :parameters, :params_filters,
|
224
231
|
:environment_filters, :session_data, :project_root, :url, :ignore,
|
225
232
|
:ignore_by_filters, :notifier_name, :notifier_url, :notifier_version,
|
226
|
-
:component, :action, :cgi_data, :environment_name, :hostname, :context,
|
233
|
+
:component, :action, :cgi_data, :environment_name, :hostname, :stats, :context,
|
227
234
|
:source_extract, :source_extract_radius, :send_request_session
|
228
235
|
|
229
236
|
# Private: Arguments given in the initializer
|
230
237
|
attr_accessor :args
|
231
238
|
|
232
|
-
#
|
233
|
-
#
|
239
|
+
# Internal: Gets a property named "attribute" of an exception, either from
|
240
|
+
# the #args hash or actual exception (in order of precidence)
|
234
241
|
#
|
235
|
-
#
|
236
|
-
#
|
242
|
+
# attribute - A Symbol existing as a key in #args and/or attribute on
|
243
|
+
# Exception
|
244
|
+
# default - Default value if no other value is found. (optional)
|
245
|
+
# block - An optional block which receives an Exception and returns the
|
246
|
+
# desired value
|
237
247
|
#
|
238
|
-
#
|
248
|
+
# Returns attribute value from args or exception, otherwise default
|
239
249
|
def exception_attribute(attribute, default = nil, &block)
|
240
|
-
(exception && from_exception(attribute, &block)) ||
|
250
|
+
args[attribute] || (exception && from_exception(attribute, &block)) || default
|
241
251
|
end
|
242
252
|
|
243
253
|
# Private: Gets a property named +attribute+ from an exception.
|
@@ -324,7 +334,7 @@ module Honeybadger
|
|
324
334
|
# ActionView::Template::Error has its own source_extract method.
|
325
335
|
# If present, use that instead.
|
326
336
|
if exception.respond_to?(:source_extract)
|
327
|
-
Hash[
|
337
|
+
Hash[exception.source_extract.split("\n").map do |line|
|
328
338
|
parts = line.split(': ')
|
329
339
|
[parts[0].strip, parts[1] || '']
|
330
340
|
end]
|
@@ -398,7 +408,30 @@ module Honeybadger
|
|
398
408
|
end
|
399
409
|
|
400
410
|
def local_hostname
|
401
|
-
Socket.gethostname
|
411
|
+
args[:hostname] || Socket.gethostname
|
412
|
+
end
|
413
|
+
|
414
|
+
# Internal: Limit size of string to bytes
|
415
|
+
#
|
416
|
+
# input - The String to be trimmed.
|
417
|
+
# bytes - The Integer bytes to trim.
|
418
|
+
# block - An optional block used in place of input.
|
419
|
+
#
|
420
|
+
# Examples
|
421
|
+
#
|
422
|
+
# trimmed = trim_size("Honeybadger doesn't care", 3)
|
423
|
+
#
|
424
|
+
# trimmed = trim_size(3) do
|
425
|
+
# "Honeybadger doesn't care"
|
426
|
+
# end
|
427
|
+
#
|
428
|
+
# Returns trimmed String
|
429
|
+
def trim_size(*args, &block)
|
430
|
+
input, bytes = args.first, args.last
|
431
|
+
input = yield if block_given?
|
432
|
+
input = input.dup
|
433
|
+
input = input[0...bytes] if input.respond_to?(:size) && input.size > bytes
|
434
|
+
input
|
402
435
|
end
|
403
436
|
end
|
404
437
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Honeybadger
|
2
|
+
class Stats
|
3
|
+
HAS_MEM = File.exists?("/proc/meminfo")
|
4
|
+
HAS_LOAD = File.exists?("/proc/loadavg")
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def all
|
8
|
+
{ :mem => memory, :load => load }
|
9
|
+
end
|
10
|
+
|
11
|
+
# From https://github.com/bloopletech/webstats/blob/master/server/data_providers/mem_info.rb
|
12
|
+
def memory
|
13
|
+
out = {}
|
14
|
+
if HAS_MEM
|
15
|
+
out[:total], out[:free], out[:buffers], out[:cached] = IO.readlines("/proc/meminfo")[0..4].map { |l| l =~ /^.*?\: +(.*?) kB$/; $1.to_i / 1024.0 }
|
16
|
+
out[:free_total] = out[:free] + out[:buffers] + out[:cached]
|
17
|
+
end
|
18
|
+
out
|
19
|
+
end
|
20
|
+
|
21
|
+
# From https://github.com/bloopletech/webstats/blob/master/server/data_providers/cpu_info.rb
|
22
|
+
def load
|
23
|
+
out = {}
|
24
|
+
out[:one], out[:five], out[:fifteen] = IO.read("/proc/loadavg").split(' ', 4).map(&:to_f) if HAS_LOAD
|
25
|
+
out
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -30,6 +30,7 @@ class ConfigurationTest < Test::Unit::TestCase
|
|
30
30
|
assert_config_default :send_request_session, true
|
31
31
|
assert_config_default :debug, false
|
32
32
|
assert_config_default :fingerprint, nil
|
33
|
+
assert_config_default :hostname, nil
|
33
34
|
end
|
34
35
|
|
35
36
|
should "configure async as Proc" do
|
@@ -110,6 +111,7 @@ class ConfigurationTest < Test::Unit::TestCase
|
|
110
111
|
assert_config_overridable :fingerprint
|
111
112
|
assert_config_overridable :send_request_session
|
112
113
|
assert_config_overridable :debug
|
114
|
+
assert_config_overridable :hostname
|
113
115
|
end
|
114
116
|
|
115
117
|
should "have an api key" do
|
@@ -124,7 +126,8 @@ class ConfigurationTest < Test::Unit::TestCase
|
|
124
126
|
:ignore_by_filters, :ignore_user_agent, :notifier_name, :notifier_url,
|
125
127
|
:notifier_version, :params_filters, :project_root, :port, :protocol,
|
126
128
|
:proxy_host, :proxy_pass, :proxy_port, :proxy_user, :secure,
|
127
|
-
:source_extract_radius, :async, :send_request_session, :debug,
|
129
|
+
:source_extract_radius, :async, :send_request_session, :debug,
|
130
|
+
:fingerprint, :hostname].each do |option|
|
128
131
|
assert_equal config[option], hash[option], "Wrong value for #{option}"
|
129
132
|
end
|
130
133
|
end
|
data/test/unit/notice_test.rb
CHANGED
@@ -92,6 +92,11 @@ class NoticeTest < Test::Unit::TestCase
|
|
92
92
|
assert_equal hostname, notice.hostname
|
93
93
|
end
|
94
94
|
|
95
|
+
should "override the host name" do
|
96
|
+
notice = build_notice({ :hostname => 'asdf' })
|
97
|
+
assert_equal 'asdf', notice.hostname
|
98
|
+
end
|
99
|
+
|
95
100
|
context "custom fingerprint" do
|
96
101
|
should "include nil fingerprint when no fingerprint is specified" do
|
97
102
|
notice = build_notice
|
@@ -510,6 +515,21 @@ class NoticeTest < Test::Unit::TestCase
|
|
510
515
|
assert_equal "[possible infinite recursion halted]", notice.parameters[:hash]
|
511
516
|
end
|
512
517
|
|
518
|
+
should "trim error message to 1k" do
|
519
|
+
message = 'asdfghjkl'*200
|
520
|
+
e = StandardError.new(message)
|
521
|
+
notice = Honeybadger::Notice.new(:exception => e)
|
522
|
+
assert_operator 1024, :<, message.bytesize
|
523
|
+
assert_equal 1024, notice.error_message.bytesize
|
524
|
+
end
|
525
|
+
|
526
|
+
should "prefer notice args to exception attributes" do
|
527
|
+
e = RuntimeError.new('Not very helpful')
|
528
|
+
notice = Honeybadger::Notice.new(:exception => e, :error_class => 'MyClass', :error_message => 'Something very specific went wrong.')
|
529
|
+
assert_equal 'MyClass', notice.error_class
|
530
|
+
assert_equal 'Something very specific went wrong.', notice.error_message
|
531
|
+
end
|
532
|
+
|
513
533
|
def assert_accepts_exception_attribute(attribute, args = {}, &block)
|
514
534
|
exception = build_exception
|
515
535
|
block ||= lambda { exception.send(attribute) }
|
metadata
CHANGED
@@ -1,36 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: honeybadger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.8.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Joshua Wood
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-08-14 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: json
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: cucumber
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: fakeweb
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: sham_rack
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,23 +83,20 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: bourne
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '1.0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '1.0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: shoulda
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ~>
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,81 +111,71 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: capistrano
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - '>='
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - '>='
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: rake
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- -
|
129
|
+
- - '>='
|
148
130
|
- !ruby/object:Gem::Version
|
149
131
|
version: '0'
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
|
-
- -
|
136
|
+
- - '>='
|
156
137
|
- !ruby/object:Gem::Version
|
157
138
|
version: '0'
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: sinatra
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
|
-
- -
|
143
|
+
- - '>='
|
164
144
|
- !ruby/object:Gem::Version
|
165
145
|
version: '0'
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
|
-
- -
|
150
|
+
- - '>='
|
172
151
|
- !ruby/object:Gem::Version
|
173
152
|
version: '0'
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: aruba
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
|
-
- -
|
157
|
+
- - '>='
|
180
158
|
- !ruby/object:Gem::Version
|
181
159
|
version: '0'
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
|
-
- -
|
164
|
+
- - '>='
|
188
165
|
- !ruby/object:Gem::Version
|
189
166
|
version: '0'
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: appraisal
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
|
-
- -
|
171
|
+
- - '>='
|
196
172
|
- !ruby/object:Gem::Version
|
197
173
|
version: '0'
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
|
-
- -
|
178
|
+
- - '>='
|
204
179
|
- !ruby/object:Gem::Version
|
205
180
|
version: '0'
|
206
181
|
description: Make managing application errors a more pleasant experience.
|
@@ -271,6 +246,7 @@ files:
|
|
271
246
|
- lib/honeybadger/rake_handler.rb
|
272
247
|
- lib/honeybadger/sender.rb
|
273
248
|
- lib/honeybadger/shared_tasks.rb
|
249
|
+
- lib/honeybadger/stats.rb
|
274
250
|
- lib/honeybadger/tasks.rb
|
275
251
|
- lib/honeybadger_tasks.rb
|
276
252
|
- lib/rails/generators/honeybadger/honeybadger_generator.rb
|
@@ -292,6 +268,7 @@ files:
|
|
292
268
|
- test/unit/sender_test.rb
|
293
269
|
homepage: http://www.honeybadger.io
|
294
270
|
licenses: []
|
271
|
+
metadata: {}
|
295
272
|
post_install_message:
|
296
273
|
rdoc_options:
|
297
274
|
- --charset=UTF-8
|
@@ -299,23 +276,18 @@ rdoc_options:
|
|
299
276
|
require_paths:
|
300
277
|
- lib
|
301
278
|
required_ruby_version: !ruby/object:Gem::Requirement
|
302
|
-
none: false
|
303
279
|
requirements:
|
304
|
-
- -
|
280
|
+
- - '>='
|
305
281
|
- !ruby/object:Gem::Version
|
306
282
|
version: '0'
|
307
|
-
segments:
|
308
|
-
- 0
|
309
|
-
hash: -2239778721023369939
|
310
283
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
311
|
-
none: false
|
312
284
|
requirements:
|
313
|
-
- -
|
285
|
+
- - '>='
|
314
286
|
- !ruby/object:Gem::Version
|
315
287
|
version: '0'
|
316
288
|
requirements: []
|
317
289
|
rubyforge_project:
|
318
|
-
rubygems_version:
|
290
|
+
rubygems_version: 2.0.3
|
319
291
|
signing_key:
|
320
292
|
specification_version: 2
|
321
293
|
summary: Error reports you can be happy about.
|