honeybadger 1.3.1 → 1.4.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/Appraisals +20 -0
- data/Gemfile +1 -13
- data/Gemfile.lock +39 -64
- data/MIT-LICENSE +5 -0
- data/README.md +102 -3
- data/Rakefile +9 -134
- data/features/metal.feature +6 -4
- data/features/rack.feature +3 -4
- data/features/rails.feature +106 -99
- data/features/rake.feature +0 -2
- data/features/sinatra.feature +1 -3
- data/features/step_definitions/metal_steps.rb +2 -1
- data/features/step_definitions/rack_steps.rb +2 -2
- data/features/step_definitions/rails_steps.rb +238 -0
- data/features/step_definitions/rake_steps.rb +1 -1
- data/features/support/env.rb +7 -7
- data/features/support/rails.rb +41 -58
- data/gemfiles/rails2.3.gemfile +9 -0
- data/gemfiles/rails2.3.gemfile.lock +102 -0
- data/gemfiles/rails3.0.gemfile +8 -0
- data/gemfiles/rails3.0.gemfile.lock +146 -0
- data/gemfiles/rails3.1.gemfile +8 -0
- data/gemfiles/rails3.1.gemfile.lock +161 -0
- data/gemfiles/rails3.2.gemfile +8 -0
- data/gemfiles/rails3.2.gemfile.lock +160 -0
- data/honeybadger.gemspec +30 -24
- data/lib/honeybadger.rb +117 -113
- data/lib/honeybadger/backtrace.rb +9 -3
- data/lib/honeybadger/configuration.rb +22 -0
- data/lib/honeybadger/notice.rb +9 -0
- data/lib/honeybadger/rack.rb +5 -4
- data/lib/honeybadger/rails3_tasks.rb +20 -23
- data/lib/honeybadger/sender.rb +10 -4
- data/lib/honeybadger/shared_tasks.rb +12 -1
- data/lib/honeybadger/tasks.rb +6 -1
- data/test/test_helper.rb +71 -71
- data/test/unit/backtrace_test.rb +26 -23
- data/test/unit/capistrano_test.rb +1 -1
- data/test/unit/configuration_test.rb +19 -3
- data/test/unit/honeybadger_tasks_test.rb +1 -1
- data/test/unit/logger_test.rb +1 -1
- data/test/unit/notice_test.rb +71 -16
- data/test/unit/notifier_test.rb +25 -5
- data/test/unit/rack_test.rb +21 -1
- data/test/unit/rails/action_controller_catcher_test.rb +1 -1
- data/test/unit/rails_test.rb +1 -1
- data/test/unit/sender_test.rb +1 -1
- metadata +69 -45
- data/SUPPORTED_RAILS_VERSIONS +0 -37
- data/TESTING.md +0 -33
- data/features/step_definitions/file_steps.rb +0 -10
- data/features/step_definitions/rails_application_steps.rb +0 -394
- data/features/support/terminal.rb +0 -107
data/test/unit/backtrace_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'stringio'
|
3
3
|
|
4
|
-
class BacktraceTest <
|
4
|
+
class BacktraceTest < Test::Unit::TestCase
|
5
5
|
should "parse a backtrace into lines" do
|
6
6
|
array = [
|
7
7
|
"app/models/user.rb:13:in `magic'",
|
@@ -112,32 +112,43 @@ class BacktraceTest < Honeybadger::UnitTest
|
|
112
112
|
|
113
113
|
backtrace = Honeybadger::Backtrace.parse(array)
|
114
114
|
|
115
|
-
|
116
|
-
|
115
|
+
assert_equal backtrace.lines.first.source, {}
|
116
|
+
assert_equal backtrace.lines.second.source, {}
|
117
|
+
end
|
118
|
+
|
119
|
+
should "have an empty application trace by default" do
|
120
|
+
backtrace = Honeybadger::Backtrace.parse(build_backtrace_array)
|
121
|
+
assert_equal backtrace.application_lines, []
|
117
122
|
end
|
118
123
|
|
119
124
|
context "with a project root" do
|
120
125
|
setup do
|
121
126
|
@project_root = '/some/path'
|
122
127
|
Honeybadger.configure {|config| config.project_root = @project_root }
|
123
|
-
end
|
124
|
-
|
125
|
-
teardown do
|
126
|
-
reset_config
|
127
|
-
end
|
128
128
|
|
129
|
-
|
130
|
-
backtrace_with_root = Honeybadger::Backtrace.parse(
|
129
|
+
@backtrace_with_root = Honeybadger::Backtrace.parse(
|
131
130
|
["#{@project_root}/app/models/user.rb:7:in `latest'",
|
132
131
|
"#{@project_root}/app/controllers/users_controller.rb:13:in `index'",
|
132
|
+
"#{@project_root}/vendor/plugins/foo/bar.rb:42:in `baz'",
|
133
133
|
"/lib/something.rb:41:in `open'"],
|
134
134
|
:filters => default_filters)
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
135
|
+
@backtrace_without_root = Honeybadger::Backtrace.parse(
|
136
|
+
["[PROJECT_ROOT]/app/models/user.rb:7:in `latest'",
|
137
|
+
"[PROJECT_ROOT]/app/controllers/users_controller.rb:13:in `index'",
|
138
|
+
"[PROJECT_ROOT]/vendor/plugins/foo/bar.rb:42:in `baz'",
|
139
|
+
"/lib/something.rb:41:in `open'"])
|
140
|
+
end
|
139
141
|
|
140
|
-
|
142
|
+
should "filter out the project root" do
|
143
|
+
assert_equal @backtrace_without_root, @backtrace_with_root
|
144
|
+
end
|
145
|
+
|
146
|
+
should "have an application trace" do
|
147
|
+
assert_equal @backtrace_without_root.application_lines, @backtrace_without_root.lines[0..1]
|
148
|
+
end
|
149
|
+
|
150
|
+
should "filter ./vendor from application trace" do
|
151
|
+
assert_does_not_contain @backtrace_without_root.application_lines, @backtrace_without_root.lines[2]
|
141
152
|
end
|
142
153
|
end
|
143
154
|
|
@@ -148,10 +159,6 @@ class BacktraceTest < Honeybadger::UnitTest
|
|
148
159
|
Honeybadger.configure {|config| config.project_root = @project_root }
|
149
160
|
end
|
150
161
|
|
151
|
-
teardown do
|
152
|
-
reset_config
|
153
|
-
end
|
154
|
-
|
155
162
|
should "filter out the project root" do
|
156
163
|
backtrace_with_root = Honeybadger::Backtrace.parse(
|
157
164
|
["#{@project_root}/app/models/user.rb:7:in `latest'",
|
@@ -172,10 +179,6 @@ class BacktraceTest < Honeybadger::UnitTest
|
|
172
179
|
Honeybadger.configure {|config| config.project_root = '' }
|
173
180
|
end
|
174
181
|
|
175
|
-
teardown do
|
176
|
-
reset_config
|
177
|
-
end
|
178
|
-
|
179
182
|
should "not filter line numbers with respect to any project root" do
|
180
183
|
backtrace = ["/app/models/user.rb:7:in `latest'",
|
181
184
|
"/app/controllers/users_controller.rb:13:in `index'",
|
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class ConfigurationTest <
|
4
|
-
include DefinesConstants
|
5
|
-
|
3
|
+
class ConfigurationTest < Test::Unit::TestCase
|
6
4
|
should "provide default values" do
|
7
5
|
assert_config_default :proxy_host, nil
|
8
6
|
assert_config_default :proxy_port, nil
|
@@ -28,6 +26,24 @@ class ConfigurationTest < Honeybadger::UnitTest
|
|
28
26
|
Honeybadger::Configuration::IGNORE_DEFAULT
|
29
27
|
assert_config_default :framework, 'Standalone'
|
30
28
|
assert_config_default :source_extract_radius, 2
|
29
|
+
assert_config_default :async, nil
|
30
|
+
end
|
31
|
+
|
32
|
+
should "configure async as Proc" do
|
33
|
+
config = Honeybadger::Configuration.new
|
34
|
+
async_handler = Proc.new { |n| n.deliver }
|
35
|
+
assert !config.async?, 'Configuration#async? should be falsey'
|
36
|
+
config.async = async_handler
|
37
|
+
assert config.async?, 'Configuration#async? should be truthy'
|
38
|
+
assert_equal config.async, async_handler
|
39
|
+
end
|
40
|
+
|
41
|
+
should "configure async with block" do
|
42
|
+
config = Honeybadger::Configuration.new
|
43
|
+
assert !config.async?, 'Configuration#async? should be falsey'
|
44
|
+
config.async { |n| n }
|
45
|
+
assert config.async?, 'Configuration#async? should be truthy'
|
46
|
+
assert_equal config.async.call('foo'), 'foo'
|
31
47
|
end
|
32
48
|
|
33
49
|
should "stub current_user_method" do
|
@@ -6,7 +6,7 @@ require 'fakeweb'
|
|
6
6
|
|
7
7
|
FakeWeb.allow_net_connect = false
|
8
8
|
|
9
|
-
class HoneybadgerTasksTest <
|
9
|
+
class HoneybadgerTasksTest < Test::Unit::TestCase
|
10
10
|
def successful_response(body = "")
|
11
11
|
response = Net::HTTPSuccess.new('1.2', '200', 'OK')
|
12
12
|
response.stubs(:body).returns(body)
|
data/test/unit/logger_test.rb
CHANGED
data/test/unit/notice_test.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'json'
|
3
3
|
|
4
|
-
class NoticeTest <
|
5
|
-
include DefinesConstants
|
6
|
-
|
4
|
+
class NoticeTest < Test::Unit::TestCase
|
7
5
|
def configure
|
8
6
|
Honeybadger::Configuration.new.tap do |config|
|
9
7
|
config.api_key = 'abc123def456'
|
@@ -24,6 +22,16 @@ class NoticeTest < Honeybadger::UnitTest
|
|
24
22
|
:env => { 'three' => 'four' } }.update(attrs))
|
25
23
|
end
|
26
24
|
|
25
|
+
should "deliver to sender" do
|
26
|
+
sender = stub_sender!
|
27
|
+
notice = build_notice
|
28
|
+
notice.stubs(:to_json => { :foo => 'bar' })
|
29
|
+
|
30
|
+
notice.deliver
|
31
|
+
|
32
|
+
assert_received(sender, :send_to_honeybadger) { |expect| expect.with(notice.to_json) }
|
33
|
+
end
|
34
|
+
|
27
35
|
should "generate json from as_json template" do
|
28
36
|
notice = build_notice
|
29
37
|
hash = {'foo' => 'bar'}
|
@@ -74,11 +82,40 @@ class NoticeTest < Honeybadger::UnitTest
|
|
74
82
|
|
75
83
|
context "with a backtrace" do
|
76
84
|
setup do
|
77
|
-
@
|
85
|
+
@source = <<-RUBY
|
86
|
+
$:<<'lib'
|
87
|
+
require 'honeybadger'
|
88
|
+
|
89
|
+
begin
|
90
|
+
raise StandardError
|
91
|
+
rescue => e
|
92
|
+
puts Honeybadger::Notice.new(exception: e).backtrace.to_json
|
93
|
+
end
|
94
|
+
RUBY
|
95
|
+
|
96
|
+
@backtrace_array = ["my/file/backtrace:3",
|
97
|
+
"test/honeybadger/rack_test.rb:2:in `build_exception'",
|
98
|
+
"test/honeybadger/rack_test.rb:52:in `test_delivers_exception_from_rack'",
|
99
|
+
"foo/bar/baz.rb:28:in `run'"]
|
100
|
+
|
78
101
|
@exception = build_exception
|
79
102
|
@exception.set_backtrace(@backtrace_array)
|
80
103
|
end
|
81
104
|
|
105
|
+
should "pass its backtrace filters for parsing" do
|
106
|
+
Honeybadger::Backtrace.expects(:parse).with(@backtrace_array, {:filters => 'foo'}).returns(mock(:lines => []))
|
107
|
+
|
108
|
+
notice = Honeybadger::Notice.new({:exception => @exception, :backtrace_filters => 'foo'})
|
109
|
+
end
|
110
|
+
|
111
|
+
should "pass its backtrace line filters for parsing" do
|
112
|
+
@backtrace_array.each do |line|
|
113
|
+
Honeybadger::Backtrace::Line.expects(:parse).with(line, {:filters => 'foo'})
|
114
|
+
end
|
115
|
+
|
116
|
+
notice = Honeybadger::Notice.new({:exception => @exception, :backtrace_filters => 'foo'})
|
117
|
+
end
|
118
|
+
|
82
119
|
should "accept a backtrace from an exception or hash" do
|
83
120
|
backtrace = Honeybadger::Backtrace.parse(@backtrace_array)
|
84
121
|
notice_from_exception = build_notice(:exception => @exception)
|
@@ -93,23 +130,41 @@ class NoticeTest < Honeybadger::UnitTest
|
|
93
130
|
"backtrace was not correctly set from a hash"
|
94
131
|
end
|
95
132
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
133
|
+
context "without application trace" do
|
134
|
+
setup do
|
135
|
+
Honeybadger.configuration.project_root = '/foo/bar'
|
136
|
+
@string_io = StringIO.new(@source)
|
137
|
+
File.stubs(:exists?).with('my/file/backtrace').returns true
|
138
|
+
File.stubs(:open).with('my/file/backtrace').yields @string_io
|
139
|
+
end
|
140
|
+
|
141
|
+
should "include source extract from backtrace" do
|
142
|
+
backtrace = Honeybadger::Backtrace.parse(@backtrace_array)
|
143
|
+
notice_from_exception = build_notice(:exception => @exception)
|
144
|
+
@string_io.rewind
|
145
|
+
|
146
|
+
assert_not_equal notice_from_exception.source_extract, {}, 'Expected backtrace source extract to be found'
|
147
|
+
assert_equal backtrace.lines.first.source, notice_from_exception.source_extract
|
148
|
+
end
|
100
149
|
end
|
101
150
|
|
102
|
-
|
103
|
-
|
151
|
+
context 'with an application trace' do
|
152
|
+
setup do
|
153
|
+
Honeybadger.configuration.project_root = 'test/honeybadger/'
|
104
154
|
|
105
|
-
|
106
|
-
|
155
|
+
@string_io = StringIO.new(@source)
|
156
|
+
File.stubs(:exists?).with('test/honeybadger/rack_test.rb').returns true
|
157
|
+
File.stubs(:open).with('test/honeybadger/rack_test.rb').yields @string_io
|
158
|
+
end
|
107
159
|
|
108
|
-
|
109
|
-
|
110
|
-
|
160
|
+
should "include source extract from first line of application trace" do
|
161
|
+
backtrace = Honeybadger::Backtrace.parse(@backtrace_array)
|
162
|
+
notice_from_exception = build_notice(:exception => @exception)
|
163
|
+
@string_io.rewind
|
111
164
|
|
112
|
-
|
165
|
+
assert_not_equal notice_from_exception.source_extract, {}, 'Expected backtrace source extract to be found'
|
166
|
+
assert_equal backtrace.lines.second.source, notice_from_exception.source_extract
|
167
|
+
end
|
113
168
|
end
|
114
169
|
end
|
115
170
|
|
data/test/unit/notifier_test.rb
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class NotifierTest <
|
3
|
+
class NotifierTest < Test::Unit::TestCase
|
4
4
|
class OriginalException < Exception
|
5
5
|
end
|
6
6
|
|
7
7
|
class ContinuedException < Exception
|
8
8
|
end
|
9
9
|
|
10
|
-
include DefinesConstants
|
11
|
-
|
12
10
|
def setup
|
13
11
|
super
|
14
12
|
reset_config
|
@@ -16,7 +14,6 @@ class NotifierTest < Honeybadger::UnitTest
|
|
16
14
|
|
17
15
|
def assert_sent(notice, notice_args)
|
18
16
|
assert_received(Honeybadger::Notice, :new) {|expect| expect.with(has_entries(notice_args)) }
|
19
|
-
assert_received(notice, :to_json)
|
20
17
|
assert_received(Honeybadger.sender, :send_to_honeybadger) {|expect| expect.with(notice.to_json) }
|
21
18
|
end
|
22
19
|
|
@@ -59,6 +56,29 @@ class NotifierTest < Honeybadger::UnitTest
|
|
59
56
|
assert_equal sender, Honeybadger.sender
|
60
57
|
end
|
61
58
|
|
59
|
+
should "create and send a notice asynchronously" do
|
60
|
+
set_public_env
|
61
|
+
notice = stub_notice!
|
62
|
+
notice_args = { :error_message => 'uh oh' }
|
63
|
+
|
64
|
+
async_expectation = stub(:received => true)
|
65
|
+
async_handler = Proc.new do |notice|
|
66
|
+
async_expectation.received
|
67
|
+
notice.deliver
|
68
|
+
end
|
69
|
+
|
70
|
+
Honeybadger.configure do |config|
|
71
|
+
config.async = async_handler
|
72
|
+
end
|
73
|
+
|
74
|
+
stub_sender!
|
75
|
+
|
76
|
+
Honeybadger.notify(notice_args)
|
77
|
+
|
78
|
+
assert_received(async_expectation, :received)
|
79
|
+
assert_sent(notice, notice_args)
|
80
|
+
end
|
81
|
+
|
62
82
|
should "create and send a notice for an exception" do
|
63
83
|
set_public_env
|
64
84
|
exception = build_exception
|
@@ -156,7 +176,7 @@ class NotifierTest < Honeybadger::UnitTest
|
|
156
176
|
config_opts = { 'one' => 'two', 'three' => 'four' }
|
157
177
|
notice = stub_notice!
|
158
178
|
stub_sender!
|
159
|
-
Honeybadger.configuration = stub('config', :merge => config_opts, :public? => true)
|
179
|
+
Honeybadger.configuration = stub('config', :merge => config_opts, :public? => true, :async? => false)
|
160
180
|
|
161
181
|
Honeybadger.notify(exception)
|
162
182
|
|
data/test/unit/rack_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class RackTest <
|
3
|
+
class RackTest < Test::Unit::TestCase
|
4
4
|
should "call the upstream app with the environment" do
|
5
5
|
environment = { 'key' => 'value' }
|
6
6
|
app = lambda { |env| ['response', {}, env] }
|
@@ -54,6 +54,26 @@ class RackTest < Honeybadger::UnitTest
|
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
+
should "deliver an exception in sinatra.error" do
|
58
|
+
Honeybadger.stubs(:notify_or_ignore)
|
59
|
+
exception = build_exception
|
60
|
+
environment = { 'key' => 'value' }
|
61
|
+
|
62
|
+
response = [200, {}, ['okay']]
|
63
|
+
app = lambda do |env|
|
64
|
+
env['sinatra.error'] = exception
|
65
|
+
response
|
66
|
+
end
|
67
|
+
stack = Honeybadger::Rack.new(app)
|
68
|
+
|
69
|
+
actual_response = stack.call(environment)
|
70
|
+
|
71
|
+
assert_equal response, actual_response
|
72
|
+
assert_received(Honeybadger, :notify_or_ignore) do |expect|
|
73
|
+
expect.with(exception, :rack_env => environment)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
57
77
|
should "clear context after app is called" do
|
58
78
|
Honeybadger.context( :foo => :bar )
|
59
79
|
assert_equal({ :foo => :bar }, Thread.current[:honeybadger_context])
|
data/test/unit/rails_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'honeybadger/rails'
|
3
3
|
|
4
|
-
class RailsInitializerTest <
|
4
|
+
class RailsInitializerTest < Test::Unit::TestCase
|
5
5
|
include DefinesConstants
|
6
6
|
|
7
7
|
should "trigger use of Rails' logger if logger isn't set and Rails' logger exists" do
|
data/test/unit/sender_test.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: honeybadger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -44,13 +44,13 @@ dependencies:
|
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: cucumber
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
51
|
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 2.
|
53
|
+
version: 1.2.1
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,15 +58,15 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.
|
61
|
+
version: 1.2.1
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: rspec
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
67
|
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 2.
|
69
|
+
version: 2.12.0
|
70
70
|
type: :development
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,15 +74,31 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 2.
|
77
|
+
version: 2.12.0
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
79
|
+
name: fakeweb
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 1.3.0
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.3.0
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: sham_rack
|
80
96
|
requirement: !ruby/object:Gem::Requirement
|
81
97
|
none: false
|
82
98
|
requirements:
|
83
99
|
- - ~>
|
84
100
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
101
|
+
version: 1.3.0
|
86
102
|
type: :development
|
87
103
|
prerelease: false
|
88
104
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -90,7 +106,7 @@ dependencies:
|
|
90
106
|
requirements:
|
91
107
|
- - ~>
|
92
108
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
109
|
+
version: 1.3.0
|
94
110
|
- !ruby/object:Gem::Dependency
|
95
111
|
name: bourne
|
96
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,13 +124,13 @@ dependencies:
|
|
108
124
|
- !ruby/object:Gem::Version
|
109
125
|
version: '1.0'
|
110
126
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
127
|
+
name: shoulda
|
112
128
|
requirement: !ruby/object:Gem::Requirement
|
113
129
|
none: false
|
114
130
|
requirements:
|
115
131
|
- - ~>
|
116
132
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
133
|
+
version: 2.11.3
|
118
134
|
type: :development
|
119
135
|
prerelease: false
|
120
136
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -122,87 +138,87 @@ dependencies:
|
|
122
138
|
requirements:
|
123
139
|
- - ~>
|
124
140
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
141
|
+
version: 2.11.3
|
126
142
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
143
|
+
name: capistrano
|
128
144
|
requirement: !ruby/object:Gem::Requirement
|
129
145
|
none: false
|
130
146
|
requirements:
|
131
|
-
- -
|
147
|
+
- - ! '>='
|
132
148
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
149
|
+
version: '0'
|
134
150
|
type: :development
|
135
151
|
prerelease: false
|
136
152
|
version_requirements: !ruby/object:Gem::Requirement
|
137
153
|
none: false
|
138
154
|
requirements:
|
139
|
-
- -
|
155
|
+
- - ! '>='
|
140
156
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
157
|
+
version: '0'
|
142
158
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
159
|
+
name: rake
|
144
160
|
requirement: !ruby/object:Gem::Requirement
|
145
161
|
none: false
|
146
162
|
requirements:
|
147
|
-
- -
|
163
|
+
- - ! '>='
|
148
164
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
165
|
+
version: '0'
|
150
166
|
type: :development
|
151
167
|
prerelease: false
|
152
168
|
version_requirements: !ruby/object:Gem::Requirement
|
153
169
|
none: false
|
154
170
|
requirements:
|
155
|
-
- -
|
171
|
+
- - ! '>='
|
156
172
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
173
|
+
version: '0'
|
158
174
|
- !ruby/object:Gem::Dependency
|
159
|
-
name:
|
175
|
+
name: sinatra
|
160
176
|
requirement: !ruby/object:Gem::Requirement
|
161
177
|
none: false
|
162
178
|
requirements:
|
163
|
-
- -
|
179
|
+
- - ! '>='
|
164
180
|
- !ruby/object:Gem::Version
|
165
|
-
version:
|
181
|
+
version: '0'
|
166
182
|
type: :development
|
167
183
|
prerelease: false
|
168
184
|
version_requirements: !ruby/object:Gem::Requirement
|
169
185
|
none: false
|
170
186
|
requirements:
|
171
|
-
- -
|
187
|
+
- - ! '>='
|
172
188
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
189
|
+
version: '0'
|
174
190
|
- !ruby/object:Gem::Dependency
|
175
|
-
name:
|
191
|
+
name: aruba
|
176
192
|
requirement: !ruby/object:Gem::Requirement
|
177
193
|
none: false
|
178
194
|
requirements:
|
179
|
-
- -
|
195
|
+
- - ! '>='
|
180
196
|
- !ruby/object:Gem::Version
|
181
|
-
version:
|
197
|
+
version: '0'
|
182
198
|
type: :development
|
183
199
|
prerelease: false
|
184
200
|
version_requirements: !ruby/object:Gem::Requirement
|
185
201
|
none: false
|
186
202
|
requirements:
|
187
|
-
- -
|
203
|
+
- - ! '>='
|
188
204
|
- !ruby/object:Gem::Version
|
189
|
-
version:
|
205
|
+
version: '0'
|
190
206
|
- !ruby/object:Gem::Dependency
|
191
|
-
name:
|
207
|
+
name: appraisal
|
192
208
|
requirement: !ruby/object:Gem::Requirement
|
193
209
|
none: false
|
194
210
|
requirements:
|
195
|
-
- -
|
211
|
+
- - ! '>='
|
196
212
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
213
|
+
version: '0'
|
198
214
|
type: :development
|
199
215
|
prerelease: false
|
200
216
|
version_requirements: !ruby/object:Gem::Requirement
|
201
217
|
none: false
|
202
218
|
requirements:
|
203
|
-
- -
|
219
|
+
- - ! '>='
|
204
220
|
- !ruby/object:Gem::Version
|
205
|
-
version:
|
221
|
+
version: '0'
|
206
222
|
description: Make managing application errors a more pleasant experience.
|
207
223
|
email: josh@honeybadger.io
|
208
224
|
executables: []
|
@@ -211,29 +227,34 @@ extra_rdoc_files:
|
|
211
227
|
- README.md
|
212
228
|
- MIT-LICENSE
|
213
229
|
files:
|
230
|
+
- Appraisals
|
214
231
|
- Gemfile
|
215
232
|
- Gemfile.lock
|
216
233
|
- Guardfile
|
217
234
|
- MIT-LICENSE
|
218
235
|
- README.md
|
219
236
|
- Rakefile
|
220
|
-
- SUPPORTED_RAILS_VERSIONS
|
221
|
-
- TESTING.md
|
222
237
|
- features/metal.feature
|
223
238
|
- features/rack.feature
|
224
239
|
- features/rails.feature
|
225
240
|
- features/rake.feature
|
226
241
|
- features/sinatra.feature
|
227
|
-
- features/step_definitions/file_steps.rb
|
228
242
|
- features/step_definitions/metal_steps.rb
|
229
243
|
- features/step_definitions/rack_steps.rb
|
230
|
-
- features/step_definitions/
|
244
|
+
- features/step_definitions/rails_steps.rb
|
231
245
|
- features/step_definitions/rake_steps.rb
|
232
246
|
- features/support/env.rb
|
233
247
|
- features/support/honeybadger_shim.rb.template
|
234
248
|
- features/support/rails.rb
|
235
249
|
- features/support/rake/Rakefile
|
236
|
-
-
|
250
|
+
- gemfiles/rails2.3.gemfile
|
251
|
+
- gemfiles/rails2.3.gemfile.lock
|
252
|
+
- gemfiles/rails3.0.gemfile
|
253
|
+
- gemfiles/rails3.0.gemfile.lock
|
254
|
+
- gemfiles/rails3.1.gemfile
|
255
|
+
- gemfiles/rails3.1.gemfile.lock
|
256
|
+
- gemfiles/rails3.2.gemfile
|
257
|
+
- gemfiles/rails3.2.gemfile.lock
|
237
258
|
- generators/honeybadger/honeybadger_generator.rb
|
238
259
|
- generators/honeybadger/lib/insert_commands.rb
|
239
260
|
- generators/honeybadger/lib/rake_commands.rb
|
@@ -289,6 +310,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
289
310
|
- - ! '>='
|
290
311
|
- !ruby/object:Gem::Version
|
291
312
|
version: '0'
|
313
|
+
segments:
|
314
|
+
- 0
|
315
|
+
hash: 2390415498026321705
|
292
316
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
293
317
|
none: false
|
294
318
|
requirements:
|
@@ -297,7 +321,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
321
|
version: '0'
|
298
322
|
requirements: []
|
299
323
|
rubyforge_project:
|
300
|
-
rubygems_version: 1.8.
|
324
|
+
rubygems_version: 1.8.23
|
301
325
|
signing_key:
|
302
326
|
specification_version: 2
|
303
327
|
summary: Error reports you can be happy about.
|