honeybadger 1.12.0.beta3 → 1.13.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Appraisals +45 -60
- data/CHANGELOG.md +3 -28
- data/Gemfile.lock +1 -1
- data/MIT-LICENSE +1 -2
- data/Rakefile +4 -8
- data/features/step_definitions/rack_steps.rb +2 -1
- data/features/support/env.rb +0 -2
- data/gemfiles/rack.gemfile.lock +125 -0
- data/gemfiles/rails2.3.gemfile.lock +141 -0
- data/gemfiles/rails3.0.gemfile.lock +193 -0
- data/gemfiles/rails3.1.gemfile.lock +203 -0
- data/gemfiles/rails3.2.gemfile.lock +201 -0
- data/gemfiles/rails4.0.gemfile.lock +197 -0
- data/gemfiles/rails4.1.gemfile.lock +202 -0
- data/gemfiles/rake.gemfile +1 -1
- data/gemfiles/rake.gemfile.lock +124 -0
- data/gemfiles/sinatra.gemfile.lock +124 -0
- data/honeybadger.gemspec +11 -27
- data/lib/honeybadger.rb +10 -15
- data/lib/honeybadger/configuration.rb +4 -9
- data/lib/honeybadger/integrations/sidekiq.rb +9 -17
- data/lib/honeybadger/notice.rb +10 -45
- data/lib/honeybadger/rack.rb +54 -8
- data/lib/honeybadger/rails.rb +4 -5
- data/lib/honeybadger/railtie.rb +3 -4
- data/lib/honeybadger/user_feedback.rb +67 -3
- data/lib/honeybadger/user_informer.rb +21 -3
- data/spec/honeybadger/configuration_spec.rb +1 -5
- data/spec/honeybadger/notice_spec.rb +1 -126
- data/spec/honeybadger/rails_spec.rb +2 -4
- metadata +15 -31
- data/features/standalone.feature +0 -73
- data/features/step_definitions/standalone_steps.rb +0 -12
- data/features/step_definitions/thor_steps.rb +0 -4
- data/features/support/test.thor +0 -22
- data/features/thor.feature +0 -5
- data/gemfiles/binding_of_caller.gemfile +0 -8
- data/gemfiles/rails.gemfile +0 -11
- data/gemfiles/standalone.gemfile +0 -7
- data/gemfiles/thor.gemfile +0 -8
- data/lib/honeybadger/dependency.rb +0 -65
- data/lib/honeybadger/exception_extensions.rb +0 -35
- data/lib/honeybadger/integrations.rb +0 -5
- data/lib/honeybadger/integrations/delayed_job.rb +0 -20
- data/lib/honeybadger/integrations/delayed_job/plugin.rb +0 -31
- data/lib/honeybadger/integrations/thor.rb +0 -29
- data/lib/honeybadger/payload.rb +0 -29
- data/lib/honeybadger/rack/error_notifier.rb +0 -60
- data/lib/honeybadger/rack/user_feedback.rb +0 -74
- data/lib/honeybadger/rack/user_informer.rb +0 -28
- data/spec/honeybadger/dependency_spec.rb +0 -134
- data/spec/honeybadger/exception_extensions_spec.rb +0 -40
- data/spec/honeybadger/integrations/delayed_job_spec.rb +0 -48
- data/spec/honeybadger/integrations/sidekiq_spec.rb +0 -60
- data/spec/honeybadger/integrations/thor_spec.rb +0 -29
- data/spec/honeybadger/payload_spec.rb +0 -27
data/lib/honeybadger/rack.rb
CHANGED
@@ -1,12 +1,58 @@
|
|
1
|
-
require 'honeybadger/rack/error_notifier'
|
2
|
-
require 'honeybadger/rack/user_informer'
|
3
|
-
require 'honeybadger/rack/user_feedback'
|
4
|
-
|
5
1
|
module Honeybadger
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
2
|
+
# Middleware for Rack applications. Any errors raised by the upstream
|
3
|
+
# application will be delivered to Honeybadger and re-raised.
|
4
|
+
#
|
5
|
+
# Synopsis:
|
6
|
+
#
|
7
|
+
# require 'rack'
|
8
|
+
# require 'honeybadger'
|
9
|
+
#
|
10
|
+
# Honeybadger.configure do |config|
|
11
|
+
# config.api_key = 'my_api_key'
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# app = Rack::Builder.app do
|
15
|
+
# run lambda { |env| raise "Rack down" }
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# use Honeybadger::Rack
|
19
|
+
# run app
|
20
|
+
#
|
21
|
+
# Use a standard Honeybadger.configure call to configure your api key.
|
22
|
+
class Rack
|
23
|
+
def initialize(app)
|
24
|
+
@app = app
|
25
|
+
Honeybadger.configuration.framework = "Rack: #{::Rack.release}"
|
26
|
+
end
|
27
|
+
|
28
|
+
def ignored_user_agent?(env)
|
29
|
+
true if Honeybadger.
|
30
|
+
configuration.
|
31
|
+
ignore_user_agent.
|
32
|
+
flatten.
|
33
|
+
any? { |ua| ua === env['HTTP_USER_AGENT'] }
|
34
|
+
end
|
35
|
+
|
36
|
+
def notify_honeybadger(exception,env)
|
37
|
+
Honeybadger.notify_or_ignore(exception, :rack_env => env) unless ignored_user_agent?(env)
|
38
|
+
end
|
39
|
+
|
40
|
+
def call(env)
|
41
|
+
begin
|
42
|
+
response = @app.call(env)
|
43
|
+
rescue Exception => raised
|
44
|
+
env['honeybadger.error_id'] = notify_honeybadger(raised, env)
|
45
|
+
raise
|
46
|
+
ensure
|
47
|
+
Honeybadger.context.clear!
|
48
|
+
end
|
49
|
+
|
50
|
+
framework_exception = env['rack.exception'] || env['sinatra.error']
|
51
|
+
if framework_exception
|
52
|
+
env['honeybadger.error_id'] = notify_honeybadger(framework_exception, env)
|
53
|
+
end
|
54
|
+
|
55
|
+
response
|
10
56
|
end
|
11
57
|
end
|
12
58
|
end
|
data/lib/honeybadger/rails.rb
CHANGED
@@ -18,11 +18,11 @@ module Honeybadger
|
|
18
18
|
|
19
19
|
if defined?(::Rails.configuration) && ::Rails.configuration.respond_to?(:middleware)
|
20
20
|
::Rails.configuration.middleware.insert_after 'ActionController::Failsafe',
|
21
|
-
Honeybadger::Rack
|
21
|
+
Honeybadger::Rack
|
22
22
|
::Rails.configuration.middleware.insert_after 'Rack::Lock',
|
23
|
-
Honeybadger::
|
24
|
-
::Rails.configuration.middleware.insert_after Honeybadger::
|
25
|
-
Honeybadger::
|
23
|
+
Honeybadger::UserInformer
|
24
|
+
::Rails.configuration.middleware.insert_after Honeybadger::UserInformer,
|
25
|
+
Honeybadger::UserFeedback
|
26
26
|
end
|
27
27
|
|
28
28
|
Honeybadger.configure(true) do |config|
|
@@ -34,7 +34,6 @@ module Honeybadger
|
|
34
34
|
|
35
35
|
if defined?(::Rails.configuration) && ::Rails.configuration.respond_to?(:after_initialize)
|
36
36
|
::Rails.configuration.after_initialize do
|
37
|
-
Honeybadger::Dependency.inject!
|
38
37
|
Honeybadger.ping(Honeybadger.configuration)
|
39
38
|
end
|
40
39
|
end
|
data/lib/honeybadger/railtie.rb
CHANGED
@@ -10,9 +10,9 @@ module Honeybadger
|
|
10
10
|
end
|
11
11
|
|
12
12
|
initializer "honeybadger.use_rack_middleware" do |app|
|
13
|
-
app.config.middleware.insert 0, "Honeybadger::
|
14
|
-
app.config.middleware.insert_after "Honeybadger::
|
15
|
-
app.config.middleware.insert_after "Honeybadger::
|
13
|
+
app.config.middleware.insert 0, "Honeybadger::UserInformer"
|
14
|
+
app.config.middleware.insert_after "Honeybadger::UserInformer","Honeybadger::UserFeedback"
|
15
|
+
app.config.middleware.insert_after "Honeybadger::UserFeedback","Honeybadger::Rack"
|
16
16
|
end
|
17
17
|
|
18
18
|
config.after_initialize do
|
@@ -44,7 +44,6 @@ module Honeybadger
|
|
44
44
|
::ActionDispatch::ShowExceptions.send(:include,Honeybadger::Rails::Middleware::ExceptionsCatcher)
|
45
45
|
end
|
46
46
|
|
47
|
-
Honeybadger::Dependency.inject!
|
48
47
|
Honeybadger.ping(Honeybadger.configuration)
|
49
48
|
end
|
50
49
|
end
|
@@ -1,8 +1,72 @@
|
|
1
|
+
require 'erb'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'i18n'
|
6
|
+
rescue LoadError
|
7
|
+
module Honeybadger
|
8
|
+
module I18n
|
9
|
+
def self.t(key, options={})
|
10
|
+
options[:default]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
1
16
|
module Honeybadger
|
2
|
-
class UserFeedback
|
17
|
+
class UserFeedback
|
3
18
|
def initialize(app)
|
4
|
-
|
5
|
-
|
19
|
+
@app = app
|
20
|
+
end
|
21
|
+
|
22
|
+
def call(env)
|
23
|
+
status, headers, body = @app.call(env)
|
24
|
+
if enabled? && env['honeybadger.error_id'] && form = render_form(env['honeybadger.error_id'])
|
25
|
+
new_body = []
|
26
|
+
body.each do |chunk|
|
27
|
+
new_body << chunk.gsub("<!-- HONEYBADGER FEEDBACK -->", form)
|
28
|
+
end
|
29
|
+
body.close if body.respond_to?(:close)
|
30
|
+
headers['Content-Length'] = new_body.reduce(0) { |a,e| a += e.bytesize }.to_s
|
31
|
+
body = new_body
|
32
|
+
end
|
33
|
+
[status, headers, body]
|
34
|
+
end
|
35
|
+
|
36
|
+
def config
|
37
|
+
Honeybadger.configuration
|
38
|
+
end
|
39
|
+
|
40
|
+
def enabled?
|
41
|
+
config.feedback && config.features['feedback']
|
42
|
+
end
|
43
|
+
|
44
|
+
def action
|
45
|
+
URI.parse("#{config.protocol}://#{config.host}:#{config.port}/v1/feedback/").to_s
|
46
|
+
rescue URI::InvalidURIError
|
47
|
+
nil
|
48
|
+
end
|
49
|
+
|
50
|
+
def render_form(error_id, action = action)
|
51
|
+
return unless action
|
52
|
+
ERB.new(@template ||= File.read(template_file)).result(binding)
|
53
|
+
end
|
54
|
+
|
55
|
+
def custom_template_file
|
56
|
+
@custom_template_file ||= config.project_root &&
|
57
|
+
File.join(config.project_root, 'lib', 'honeybadger', 'templates', 'feedback_form.erb')
|
58
|
+
end
|
59
|
+
|
60
|
+
def custom_template_file?
|
61
|
+
custom_template_file && File.exists?(custom_template_file)
|
62
|
+
end
|
63
|
+
|
64
|
+
def template_file
|
65
|
+
if custom_template_file?
|
66
|
+
custom_template_file
|
67
|
+
else
|
68
|
+
File.expand_path('../templates/feedback_form.erb', __FILE__)
|
69
|
+
end
|
6
70
|
end
|
7
71
|
end
|
8
72
|
end
|
@@ -1,8 +1,26 @@
|
|
1
1
|
module Honeybadger
|
2
|
-
class UserInformer
|
2
|
+
class UserInformer
|
3
3
|
def initialize(app)
|
4
|
-
|
5
|
-
|
4
|
+
@app = app
|
5
|
+
end
|
6
|
+
|
7
|
+
def replacement(with)
|
8
|
+
Honeybadger.configuration.user_information.gsub(/\{\{\s*error_id\s*\}\}/, with.to_s)
|
9
|
+
end
|
10
|
+
|
11
|
+
def call(env)
|
12
|
+
status, headers, body = @app.call(env)
|
13
|
+
if env['honeybadger.error_id'] && Honeybadger.configuration.user_information
|
14
|
+
new_body = []
|
15
|
+
replace = replacement(env['honeybadger.error_id'])
|
16
|
+
body.each do |chunk|
|
17
|
+
new_body << chunk.gsub("<!-- HONEYBADGER ERROR -->", replace)
|
18
|
+
end
|
19
|
+
body.close if body.respond_to?(:close)
|
20
|
+
headers['Content-Length'] = new_body.reduce(0) { |a,e| a += e.bytesize }.to_s
|
21
|
+
body = new_body
|
22
|
+
end
|
23
|
+
[status, headers, body]
|
6
24
|
end
|
7
25
|
end
|
8
26
|
end
|
@@ -30,13 +30,11 @@ describe Honeybadger::Configuration do
|
|
30
30
|
assert_config_default :source_extract_radius, 2
|
31
31
|
assert_config_default :async, nil
|
32
32
|
assert_config_default :send_request_session, true
|
33
|
-
assert_config_default :send_local_variables, false
|
34
33
|
assert_config_default :debug, false
|
35
34
|
assert_config_default :log_exception_on_send_failure, false
|
36
35
|
assert_config_default :fingerprint, nil
|
37
36
|
assert_config_default :hostname, Socket.gethostname
|
38
37
|
assert_config_default :feedback, true
|
39
|
-
assert_config_default :features, {'notices' => true, 'local_variables' => true}
|
40
38
|
end
|
41
39
|
|
42
40
|
it "configures async as Proc" do
|
@@ -118,7 +116,6 @@ describe Honeybadger::Configuration do
|
|
118
116
|
assert_config_overridable :send_request_session
|
119
117
|
assert_config_overridable :debug
|
120
118
|
assert_config_overridable :hostname
|
121
|
-
assert_config_overridable :features
|
122
119
|
assert_config_overridable :metrics
|
123
120
|
assert_config_overridable :feedback
|
124
121
|
assert_config_overridable :log_exception_on_send_failure
|
@@ -137,8 +134,7 @@ describe Honeybadger::Configuration do
|
|
137
134
|
:notifier_version, :params_filters, :project_root, :port, :protocol,
|
138
135
|
:proxy_host, :proxy_pass, :proxy_port, :proxy_user, :secure,
|
139
136
|
:source_extract_radius, :async, :send_request_session, :debug,
|
140
|
-
:fingerprint, :hostname, :
|
141
|
-
:log_exception_on_send_failure].each do |option|
|
137
|
+
:fingerprint, :hostname, :metrics, :feedback, :log_exception_on_send_failure].each do |option|
|
142
138
|
expect(hash[option]).to eq config[option]
|
143
139
|
end
|
144
140
|
end
|
@@ -76,17 +76,6 @@ describe Honeybadger::Notice do
|
|
76
76
|
expect(notice.url).to eq url
|
77
77
|
end
|
78
78
|
|
79
|
-
it "initializes default features" do
|
80
|
-
notice = build_notice(:features => nil)
|
81
|
-
expect(notice.features).to eq({})
|
82
|
-
end
|
83
|
-
|
84
|
-
it "accepts features" do
|
85
|
-
features = {'foo' => 'bar'}
|
86
|
-
notice = build_notice(:features => features)
|
87
|
-
expect(notice.features).to eq features
|
88
|
-
end
|
89
|
-
|
90
79
|
it "sets the host name" do
|
91
80
|
notice = build_notice
|
92
81
|
expect(notice.hostname).to eq hostname
|
@@ -568,12 +557,7 @@ describe Honeybadger::Notice do
|
|
568
557
|
expect(notice.session_data).to eq session_data
|
569
558
|
end
|
570
559
|
|
571
|
-
|
572
|
-
it "parses params which are malformed in Rack >= 1.3" do
|
573
|
-
rack_env = Rack::MockRequest.env_for('http://www.example.com/explode', :method => 'POST', :input => 'foo=bar&bar=baz%')
|
574
|
-
expect { Honeybadger::Notice.new(:rack_env => rack_env) }.not_to raise_error
|
575
|
-
end
|
576
|
-
else
|
560
|
+
unless Gem::Version.new(Rack.release) < Gem::Version.new('1.2')
|
577
561
|
it "fails gracefully when Rack params cannot be parsed" do
|
578
562
|
rack_env = Rack::MockRequest.env_for('http://www.example.com/explode', :method => 'POST', :input => 'foo=bar&bar=baz%')
|
579
563
|
notice = Honeybadger::Notice.new(:rack_env => rack_env)
|
@@ -610,115 +594,6 @@ describe Honeybadger::Notice do
|
|
610
594
|
expect(notice.error_message).to eq 'Something very specific went wrong.'
|
611
595
|
end
|
612
596
|
|
613
|
-
describe "#to_json" do
|
614
|
-
context "when local variables are not found" do
|
615
|
-
it "sends local_variables in request payload" do
|
616
|
-
notice = build_notice
|
617
|
-
hash = {'foo' => 'bar'}
|
618
|
-
notice.stub(:local_variables).and_return(hash)
|
619
|
-
expect(JSON.parse(notice.to_json)['request']['local_variables']).to eq(hash)
|
620
|
-
end
|
621
|
-
end
|
622
|
-
|
623
|
-
context "when local variables are found" do
|
624
|
-
it "sends local_variables in request payload" do
|
625
|
-
notice = build_notice
|
626
|
-
expect(JSON.parse(notice.to_json)['request']['local_variables']).to eq({})
|
627
|
-
end
|
628
|
-
end
|
629
|
-
end
|
630
|
-
|
631
|
-
describe "#local_variables" do
|
632
|
-
let(:notice) { build_notice(:exception => @exception, :configuration => configuration) }
|
633
|
-
let(:configuration) { configure }
|
634
|
-
|
635
|
-
before do
|
636
|
-
foo = 'bar'
|
637
|
-
begin
|
638
|
-
fail 'oops'
|
639
|
-
rescue
|
640
|
-
@exception = $!
|
641
|
-
end
|
642
|
-
end
|
643
|
-
|
644
|
-
context "when binding_of_caller is not installed", :unless => defined?(BindingOfCaller) do
|
645
|
-
context "when local variables aren't enabled" do
|
646
|
-
it "does not attempt to find them" do
|
647
|
-
expect(notice.local_variables).to eq({})
|
648
|
-
end
|
649
|
-
end
|
650
|
-
|
651
|
-
context "when local variables are enabled" do
|
652
|
-
before do
|
653
|
-
configuration.send_local_variables = true
|
654
|
-
end
|
655
|
-
|
656
|
-
it "does not attempt to find them" do
|
657
|
-
expect(notice.local_variables).to eq({})
|
658
|
-
end
|
659
|
-
end
|
660
|
-
end
|
661
|
-
|
662
|
-
context "when binding_of_caller is installed", :if => defined?(BindingOfCaller) do
|
663
|
-
context "when local variables aren't enabled" do
|
664
|
-
it "does not attempt to find them" do
|
665
|
-
expect(notice.local_variables).to eq({})
|
666
|
-
end
|
667
|
-
end
|
668
|
-
|
669
|
-
context "when local variables are enabled" do
|
670
|
-
before do
|
671
|
-
configuration.send_local_variables = true
|
672
|
-
end
|
673
|
-
|
674
|
-
it "finds the local variables from first frame of trace" do
|
675
|
-
expect(notice.local_variables[:foo]).to eq 'bar'
|
676
|
-
end
|
677
|
-
|
678
|
-
context "when the feature is disabled" do
|
679
|
-
before do
|
680
|
-
configuration.features['local_variables'] = false
|
681
|
-
end
|
682
|
-
|
683
|
-
it "assigns empty Hash" do
|
684
|
-
expect(notice.local_variables).to eq({})
|
685
|
-
end
|
686
|
-
end
|
687
|
-
|
688
|
-
context "with an application trace" do
|
689
|
-
before do
|
690
|
-
@exception.__honeybadger_bindings_stack.unshift(double('Binding', :eval => nil))
|
691
|
-
configuration.project_root = File.dirname(__FILE__)
|
692
|
-
end
|
693
|
-
|
694
|
-
it "finds the local variables from first frame of application trace" do
|
695
|
-
expect(notice.local_variables[:foo]).to eq 'bar'
|
696
|
-
end
|
697
|
-
|
698
|
-
context "and project_root is a Pathname" do
|
699
|
-
before do
|
700
|
-
configuration.project_root = Pathname.new(File.dirname(__FILE__))
|
701
|
-
end
|
702
|
-
|
703
|
-
specify { expect { notice }.not_to raise_error }
|
704
|
-
end
|
705
|
-
end
|
706
|
-
|
707
|
-
context "without an exception" do
|
708
|
-
it "assigns empty Hash" do
|
709
|
-
expect(build_notice(:exception => nil).local_variables).to eq({})
|
710
|
-
end
|
711
|
-
end
|
712
|
-
|
713
|
-
context "without bindings" do
|
714
|
-
it "assigns empty Hash" do
|
715
|
-
expect(build_notice(:exception => RuntimeError.new).local_variables).to eq({})
|
716
|
-
end
|
717
|
-
end
|
718
|
-
end
|
719
|
-
end
|
720
|
-
end
|
721
|
-
|
722
597
|
def assert_accepts_exception_attribute(attribute, args = {}, &block)
|
723
598
|
exception = build_exception
|
724
599
|
block ||= lambda { exception.send(attribute) }
|
@@ -1,9 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'honeybadger/rails'
|
2
3
|
|
3
|
-
|
4
|
-
require 'honeybadger/rails' unless defined?(ActionController::Base)
|
5
|
-
|
6
|
-
describe 'Honeybadger::Rails', :unless => defined?(ActionController::Base) do
|
4
|
+
describe Honeybadger::Rails do
|
7
5
|
include DefinesConstants
|
8
6
|
|
9
7
|
it "triggers use of Rails' logger if logger isn't set and Rails' logger exists" do
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
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.13.0
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Joshua Wood
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-04-
|
12
|
+
date: 2014-04-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -256,33 +256,33 @@ files:
|
|
256
256
|
- features/rails.feature
|
257
257
|
- features/rake.feature
|
258
258
|
- features/sinatra.feature
|
259
|
-
- features/standalone.feature
|
260
259
|
- features/step_definitions/metal_steps.rb
|
261
260
|
- features/step_definitions/rack_steps.rb
|
262
261
|
- features/step_definitions/rails_steps.rb
|
263
262
|
- features/step_definitions/rake_steps.rb
|
264
|
-
- features/step_definitions/standalone_steps.rb
|
265
|
-
- features/step_definitions/thor_steps.rb
|
266
263
|
- features/support/env.rb
|
267
264
|
- features/support/honeybadger_failure_shim.rb.template
|
268
265
|
- features/support/honeybadger_shim.rb.template
|
269
266
|
- features/support/rails.rb
|
270
267
|
- features/support/rake/Rakefile
|
271
|
-
- features/support/test.thor
|
272
|
-
- features/thor.feature
|
273
|
-
- gemfiles/binding_of_caller.gemfile
|
274
268
|
- gemfiles/rack.gemfile
|
275
|
-
- gemfiles/
|
269
|
+
- gemfiles/rack.gemfile.lock
|
276
270
|
- gemfiles/rails2.3.gemfile
|
271
|
+
- gemfiles/rails2.3.gemfile.lock
|
277
272
|
- gemfiles/rails3.0.gemfile
|
273
|
+
- gemfiles/rails3.0.gemfile.lock
|
278
274
|
- gemfiles/rails3.1.gemfile
|
275
|
+
- gemfiles/rails3.1.gemfile.lock
|
279
276
|
- gemfiles/rails3.2.gemfile
|
277
|
+
- gemfiles/rails3.2.gemfile.lock
|
280
278
|
- gemfiles/rails4.0.gemfile
|
279
|
+
- gemfiles/rails4.0.gemfile.lock
|
281
280
|
- gemfiles/rails4.1.gemfile
|
281
|
+
- gemfiles/rails4.1.gemfile.lock
|
282
282
|
- gemfiles/rake.gemfile
|
283
|
+
- gemfiles/rake.gemfile.lock
|
283
284
|
- gemfiles/sinatra.gemfile
|
284
|
-
- gemfiles/
|
285
|
-
- gemfiles/thor.gemfile
|
285
|
+
- gemfiles/sinatra.gemfile.lock
|
286
286
|
- generators/honeybadger/honeybadger_generator.rb
|
287
287
|
- generators/honeybadger/lib/insert_commands.rb
|
288
288
|
- generators/honeybadger/lib/rake_commands.rb
|
@@ -297,23 +297,13 @@ files:
|
|
297
297
|
- lib/honeybadger/capistrano/legacy.rb
|
298
298
|
- lib/honeybadger/capistrano/tasks.rake
|
299
299
|
- lib/honeybadger/configuration.rb
|
300
|
-
- lib/honeybadger/dependency.rb
|
301
|
-
- lib/honeybadger/exception_extensions.rb
|
302
|
-
- lib/honeybadger/integrations.rb
|
303
|
-
- lib/honeybadger/integrations/delayed_job.rb
|
304
|
-
- lib/honeybadger/integrations/delayed_job/plugin.rb
|
305
300
|
- lib/honeybadger/integrations/sidekiq.rb
|
306
|
-
- lib/honeybadger/integrations/thor.rb
|
307
301
|
- lib/honeybadger/monitor.rb
|
308
302
|
- lib/honeybadger/monitor/railtie.rb
|
309
303
|
- lib/honeybadger/monitor/sender.rb
|
310
304
|
- lib/honeybadger/monitor/worker.rb
|
311
305
|
- lib/honeybadger/notice.rb
|
312
|
-
- lib/honeybadger/payload.rb
|
313
306
|
- lib/honeybadger/rack.rb
|
314
|
-
- lib/honeybadger/rack/error_notifier.rb
|
315
|
-
- lib/honeybadger/rack/user_feedback.rb
|
316
|
-
- lib/honeybadger/rack/user_informer.rb
|
317
307
|
- lib/honeybadger/rails.rb
|
318
308
|
- lib/honeybadger/rails/action_controller_catcher.rb
|
319
309
|
- lib/honeybadger/rails/controller_methods.rb
|
@@ -337,16 +327,10 @@ files:
|
|
337
327
|
- spec/honeybadger/backtrace_spec.rb
|
338
328
|
- spec/honeybadger/capistrano_spec.rb
|
339
329
|
- spec/honeybadger/configuration_spec.rb
|
340
|
-
- spec/honeybadger/dependency_spec.rb
|
341
|
-
- spec/honeybadger/exception_extensions_spec.rb
|
342
|
-
- spec/honeybadger/integrations/delayed_job_spec.rb
|
343
|
-
- spec/honeybadger/integrations/sidekiq_spec.rb
|
344
|
-
- spec/honeybadger/integrations/thor_spec.rb
|
345
330
|
- spec/honeybadger/logger_spec.rb
|
346
331
|
- spec/honeybadger/monitor/worker_spec.rb
|
347
332
|
- spec/honeybadger/notice_spec.rb
|
348
333
|
- spec/honeybadger/notifier_spec.rb
|
349
|
-
- spec/honeybadger/payload_spec.rb
|
350
334
|
- spec/honeybadger/rack_spec.rb
|
351
335
|
- spec/honeybadger/rails/action_controller_spec.rb
|
352
336
|
- spec/honeybadger/rails_spec.rb
|
@@ -377,13 +361,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
377
361
|
version: '0'
|
378
362
|
segments:
|
379
363
|
- 0
|
380
|
-
hash: -
|
364
|
+
hash: -2545053771295497767
|
381
365
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
382
366
|
none: false
|
383
367
|
requirements:
|
384
|
-
- - ! '
|
368
|
+
- - ! '>='
|
385
369
|
- !ruby/object:Gem::Version
|
386
|
-
version:
|
370
|
+
version: '0'
|
387
371
|
requirements: []
|
388
372
|
rubyforge_project:
|
389
373
|
rubygems_version: 1.8.23
|