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.
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