bugsnag 1.3.1 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,10 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ 1.3.2
5
+ -----
6
+ - Notify will now build exceptions if a non-exception is passed in.
7
+
4
8
  1.3.1
5
9
  -----
6
10
  - Add support for Bugsnag rake integration
data/README.md CHANGED
@@ -154,20 +154,22 @@ Rake Integration
154
154
  ----------------
155
155
 
156
156
  Bugsnag can automatically notify of all exceptions that happen in your rake tasks. In order
157
- to enable this, you need to `require "bugsnag/rake"`, like so:
157
+ to enable this, you need to `require "bugsnag/rake"` in your Rakefile, like so:
158
158
 
159
159
  ```ruby
160
+ require File.expand_path('../config/application', __FILE__)
161
+ require 'rake'
160
162
  require "bugsnag/rake"
161
163
 
162
- desc "Sample task"
163
- task sample_task => :environment do
164
- puts "doing work"
165
- raise "Something went wrong" # Reported to bugsnag
164
+ Bugsnag.configure do |config|
165
+ config.api_key = "YOUR_API_KEY_HERE"
166
166
  end
167
+
168
+ YourApp::Application.load_tasks
167
169
  ```
168
170
 
169
- **NOTE**: If you dont load your rails environment as part of your rake task, you will still need
170
- to ensure that Bugsnag has been configured by manually running the Bugsnag.configure method.
171
+ **NOTE**: We also configure Bugsnag in the Rakefile, so the tasks that do not load the full
172
+ environment can still notify Bugsnag.
171
173
 
172
174
  Standard Ruby Scripts
173
175
  ---------------------
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.1
1
+ 1.3.2
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bugsnag}
8
- s.version = "1.3.1"
8
+ s.version = "1.3.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["James Smith"]
12
- s.date = %q{2013-04-06}
12
+ s.date = %q{2013-04-18}
13
13
  s.description = %q{Ruby notifier for bugsnag.com}
14
14
  s.email = %q{james@bugsnag.com}
15
15
  s.extra_rdoc_files = [
@@ -55,6 +55,18 @@ module Bugsnag
55
55
  @exceptions = []
56
56
  ex = exception
57
57
  while ex != nil && !@exceptions.include?(ex) && @exceptions.length < MAX_EXCEPTIONS_TO_UNWRAP
58
+ unless ex.is_a? Exception
59
+ if ex.respond_to?(:to_exception)
60
+ ex = ex.to_exception
61
+ elsif ex.respond_to?(:exception)
62
+ ex = ex.exception
63
+ end
64
+ unless ex.is_a? Exception
65
+ Bugsnag.warn("Converting non-Exception to RuntimeError: #{ex.inspect}")
66
+ ex = RuntimeError.new(ex.to_s)
67
+ end
68
+ end
69
+
58
70
  @exceptions << ex
59
71
 
60
72
  if ex.respond_to?(:continued_exception) && ex.continued_exception
@@ -414,4 +414,26 @@ describe Bugsnag::Notification do
414
414
 
415
415
  Bugsnag.notify_or_ignore(first_ex)
416
416
  end
417
+
418
+ it "should call to_exception on i18n error objects" do
419
+ Bugsnag::Notification.should_receive(:deliver_exception_payload) do |endpoint, payload|
420
+ exception = get_exception_from_payload(payload)
421
+ exception[:errorClass].should be == "I18n::MissingTranslationData"
422
+ end
423
+
424
+ I18n.exception_handler = lambda do |exception, locale, key, options|
425
+ Bugsnag.notify exception
426
+ end
427
+ I18n.t(:test)
428
+ end
429
+
430
+ it "should generate runtimeerror for non exceptions" do
431
+ Bugsnag::Notification.should_receive(:deliver_exception_payload) do |endpoint, payload|
432
+ exception = get_exception_from_payload(payload)
433
+ exception[:errorClass].should be == "RuntimeError"
434
+ exception[:message].should be == "test message"
435
+ end
436
+
437
+ Bugsnag.notify("test message")
438
+ end
417
439
  end
@@ -1,4 +1,5 @@
1
1
  require 'bugsnag'
2
+ require 'i18n'
2
3
 
3
4
  class BugsnagTestException < RuntimeError; end
4
5
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 3
8
- - 1
9
- version: 1.3.1
8
+ - 2
9
+ version: 1.3.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - James Smith
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2013-04-06 00:00:00 -07:00
17
+ date: 2013-04-18 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency