honeybadger 1.12.0.beta3 → 1.13.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.
Files changed (56) hide show
  1. data/Appraisals +45 -60
  2. data/CHANGELOG.md +3 -28
  3. data/Gemfile.lock +1 -1
  4. data/MIT-LICENSE +1 -2
  5. data/Rakefile +4 -8
  6. data/features/step_definitions/rack_steps.rb +2 -1
  7. data/features/support/env.rb +0 -2
  8. data/gemfiles/rack.gemfile.lock +125 -0
  9. data/gemfiles/rails2.3.gemfile.lock +141 -0
  10. data/gemfiles/rails3.0.gemfile.lock +193 -0
  11. data/gemfiles/rails3.1.gemfile.lock +203 -0
  12. data/gemfiles/rails3.2.gemfile.lock +201 -0
  13. data/gemfiles/rails4.0.gemfile.lock +197 -0
  14. data/gemfiles/rails4.1.gemfile.lock +202 -0
  15. data/gemfiles/rake.gemfile +1 -1
  16. data/gemfiles/rake.gemfile.lock +124 -0
  17. data/gemfiles/sinatra.gemfile.lock +124 -0
  18. data/honeybadger.gemspec +11 -27
  19. data/lib/honeybadger.rb +10 -15
  20. data/lib/honeybadger/configuration.rb +4 -9
  21. data/lib/honeybadger/integrations/sidekiq.rb +9 -17
  22. data/lib/honeybadger/notice.rb +10 -45
  23. data/lib/honeybadger/rack.rb +54 -8
  24. data/lib/honeybadger/rails.rb +4 -5
  25. data/lib/honeybadger/railtie.rb +3 -4
  26. data/lib/honeybadger/user_feedback.rb +67 -3
  27. data/lib/honeybadger/user_informer.rb +21 -3
  28. data/spec/honeybadger/configuration_spec.rb +1 -5
  29. data/spec/honeybadger/notice_spec.rb +1 -126
  30. data/spec/honeybadger/rails_spec.rb +2 -4
  31. metadata +15 -31
  32. data/features/standalone.feature +0 -73
  33. data/features/step_definitions/standalone_steps.rb +0 -12
  34. data/features/step_definitions/thor_steps.rb +0 -4
  35. data/features/support/test.thor +0 -22
  36. data/features/thor.feature +0 -5
  37. data/gemfiles/binding_of_caller.gemfile +0 -8
  38. data/gemfiles/rails.gemfile +0 -11
  39. data/gemfiles/standalone.gemfile +0 -7
  40. data/gemfiles/thor.gemfile +0 -8
  41. data/lib/honeybadger/dependency.rb +0 -65
  42. data/lib/honeybadger/exception_extensions.rb +0 -35
  43. data/lib/honeybadger/integrations.rb +0 -5
  44. data/lib/honeybadger/integrations/delayed_job.rb +0 -20
  45. data/lib/honeybadger/integrations/delayed_job/plugin.rb +0 -31
  46. data/lib/honeybadger/integrations/thor.rb +0 -29
  47. data/lib/honeybadger/payload.rb +0 -29
  48. data/lib/honeybadger/rack/error_notifier.rb +0 -60
  49. data/lib/honeybadger/rack/user_feedback.rb +0 -74
  50. data/lib/honeybadger/rack/user_informer.rb +0 -28
  51. data/spec/honeybadger/dependency_spec.rb +0 -134
  52. data/spec/honeybadger/exception_extensions_spec.rb +0 -40
  53. data/spec/honeybadger/integrations/delayed_job_spec.rb +0 -48
  54. data/spec/honeybadger/integrations/sidekiq_spec.rb +0 -60
  55. data/spec/honeybadger/integrations/thor_spec.rb +0 -29
  56. data/spec/honeybadger/payload_spec.rb +0 -27
@@ -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
- module Rack
7
- def self.new(*args, &block)
8
- warn '[DEPRECATION] Honeybadger::Rack is deprecated in 2.0. Use Honeybadger::Rack::ErrorNotifier.'
9
- ErrorNotifier.new(*args, &block)
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
@@ -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::ErrorNotifier
21
+ Honeybadger::Rack
22
22
  ::Rails.configuration.middleware.insert_after 'Rack::Lock',
23
- Honeybadger::Rack::UserInformer
24
- ::Rails.configuration.middleware.insert_after Honeybadger::Rack::UserInformer,
25
- Honeybadger::Rack::UserFeedback
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
@@ -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::Rack::UserInformer"
14
- app.config.middleware.insert_after "Honeybadger::Rack::UserInformer","Honeybadger::Rack::UserFeedback"
15
- app.config.middleware.insert_after "Honeybadger::Rack::UserFeedback","Honeybadger::Rack::ErrorNotifier"
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 < Rack::UserFeedback
17
+ class UserFeedback
3
18
  def initialize(app)
4
- warn '[DEPRECATION] Honeybadger::UserFeedback is deprecated in 2.0. Use Honeybadger::Rack::UserFeedback.'
5
- super
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 < Rack::UserInformer
2
+ class UserInformer
3
3
  def initialize(app)
4
- warn '[DEPRECATION] Honeybadger::UserInformer is deprecated in 2.0. Use Honeybadger::Rack::UserInformer.'
5
- super
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, :features, :metrics, :feedback,
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
- if Gem::Version.new(Rack.release) < Gem::Version.new('1.3')
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
- # This test should be run only when Rails is not bundled
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.12.0.beta3
5
- prerelease: 7
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-08 00:00:00.000000000 Z
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/rails.gemfile
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/standalone.gemfile
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: -754790268402252973
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: 1.3.1
370
+ version: '0'
387
371
  requirements: []
388
372
  rubyforge_project:
389
373
  rubygems_version: 1.8.23