bugsnag 1.7.0 → 1.8.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.
- checksums.yaml +4 -4
- data/.gitignore +51 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +2 -14
- data/README.md +10 -0
- data/Rakefile +2 -15
- data/VERSION +1 -1
- data/bugsnag.gemspec +13 -81
- data/lib/bugsnag/notification.rb +3 -1
- data/spec/notification_spec.rb +26 -0
- metadata +16 -16
- data/Gemfile.lock +0 -67
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf8c0fe6917926d4d428f338c52fc186d1f8ee5d
|
4
|
+
data.tar.gz: 036c41b693442bf0538a10c39a23c6f63035af68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc81f6071dd7064a9fa916440d0c44858a830d4ef516fb401ab186fac1bf0b57df767efd1c43dc7acd1dacb065f2217514abeea5916aed3e70d6f0eadb0f7ef9
|
7
|
+
data.tar.gz: 9b5acfbc17863ef59e5e67730e14f702b17dfe6c163d8c4d648d8db5dd8288162fe14972a75805222dc36d1c8a37b3c74d5dabaf2ec98eb579a14f2217dc7622
|
data/.gitignore
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# rcov generated
|
2
|
+
coverage
|
3
|
+
|
4
|
+
# rdoc generated
|
5
|
+
rdoc
|
6
|
+
|
7
|
+
# yard generated
|
8
|
+
doc
|
9
|
+
.yardoc
|
10
|
+
|
11
|
+
# bundler
|
12
|
+
.bundle
|
13
|
+
Gemfile.lock
|
14
|
+
|
15
|
+
# jeweler generated
|
16
|
+
pkg
|
17
|
+
*.gem
|
18
|
+
|
19
|
+
# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
|
20
|
+
#
|
21
|
+
# * Create a file at ~/.gitignore
|
22
|
+
# * Include files you want ignored
|
23
|
+
# * Run: git config --global core.excludesfile ~/.gitignore
|
24
|
+
#
|
25
|
+
# After doing this, these files will be ignored in all your git projects,
|
26
|
+
# saving you from having to 'pollute' every project you touch with them
|
27
|
+
#
|
28
|
+
# Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
|
29
|
+
#
|
30
|
+
# For MacOS:
|
31
|
+
#
|
32
|
+
#.DS_Store
|
33
|
+
|
34
|
+
# For TextMate
|
35
|
+
#*.tmproj
|
36
|
+
#tmtags
|
37
|
+
|
38
|
+
# For emacs:
|
39
|
+
#*~
|
40
|
+
#\#*
|
41
|
+
#.\#*
|
42
|
+
|
43
|
+
# For vim:
|
44
|
+
#*.swp
|
45
|
+
|
46
|
+
# For redcar:
|
47
|
+
#.redcar
|
48
|
+
|
49
|
+
# For rubinius:
|
50
|
+
#*.rbc
|
51
|
+
bin
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -1,14 +1,2 @@
|
|
1
|
-
source "
|
2
|
-
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
5
|
-
gem "multi_json", "~> 1.0"
|
6
|
-
gem "httparty", ">= 0.6", "< 1.0"
|
7
|
-
|
8
|
-
# Add dependencies to develop your gem here.
|
9
|
-
# Include everything needed to run rake, tests, features, etc.
|
10
|
-
group :development do
|
11
|
-
gem "rspec", "~> 2.11.0"
|
12
|
-
gem "rdoc", "~> 3.12"
|
13
|
-
gem "jeweler", "~> 1.8.4"
|
14
|
-
end
|
1
|
+
source "https://rubygems.org"
|
2
|
+
gemspec
|
data/README.md
CHANGED
@@ -406,6 +406,16 @@ automatically set to use `Rails.logger`, otherwise it will be set to
|
|
406
406
|
Provides access to the middleware stack, see the
|
407
407
|
[Bugsnag Middleware](#bugsnag-middleware) section below for details.
|
408
408
|
|
409
|
+
###app_type
|
410
|
+
|
411
|
+
You can set the type of application executing the current code by using `app_type`:
|
412
|
+
|
413
|
+
```ruby
|
414
|
+
config.app_type = "resque"
|
415
|
+
```
|
416
|
+
|
417
|
+
This is usually used to represent if you are running in a Rails server, Sidekiq job or
|
418
|
+
Rake task for example. Bugsnag will automatically detect most application types for you.
|
409
419
|
|
410
420
|
Bugsnag Middleware
|
411
421
|
------------------
|
data/Rakefile
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'bundler'
|
5
|
+
require 'bundler/gem_tasks'
|
5
6
|
begin
|
6
7
|
Bundler.setup(:default, :development)
|
7
8
|
rescue Bundler::BundlerError => e
|
@@ -9,20 +10,6 @@ rescue Bundler::BundlerError => e
|
|
9
10
|
$stderr.puts "Run `bundle install` to install missing gems"
|
10
11
|
exit e.status_code
|
11
12
|
end
|
12
|
-
require 'rake'
|
13
|
-
|
14
|
-
require 'jeweler'
|
15
|
-
Jeweler::Tasks.new do |gem|
|
16
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
-
gem.name = "bugsnag"
|
18
|
-
gem.homepage = "http://github.com/bugsnag/bugsnag-ruby"
|
19
|
-
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{Ruby notifier for bugsnag.com}
|
21
|
-
gem.description = %Q{Ruby notifier for bugsnag.com}
|
22
|
-
gem.email = "james@bugsnag.com"
|
23
|
-
gem.authors = ["James Smith"]
|
24
|
-
end
|
25
|
-
Jeweler::RubygemsDotOrgTasks.new
|
26
13
|
|
27
14
|
require 'rdoc/task'
|
28
15
|
RDoc::Task.new do |rdoc|
|
@@ -41,4 +28,4 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
|
|
41
28
|
spec.pattern = FileList['spec/**/*_spec.rb']
|
42
29
|
end
|
43
30
|
|
44
|
-
task :default => :spec
|
31
|
+
task :default => :spec
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.8.0
|
data/bugsnag.gemspec
CHANGED
@@ -1,95 +1,27 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
1
|
Gem::Specification.new do |s|
|
7
2
|
s.name = "bugsnag"
|
8
|
-
s.version = "
|
3
|
+
s.version = File.read("VERSION").strip
|
9
4
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
5
|
s.authors = ["James Smith"]
|
12
|
-
s.date = "2013-12-17"
|
13
|
-
s.description = "Ruby notifier for bugsnag.com"
|
14
6
|
s.email = "james@bugsnag.com"
|
7
|
+
|
8
|
+
s.description = "Ruby notifier for bugsnag.com"
|
9
|
+
s.summary = "Ruby notifier for bugsnag.com"
|
10
|
+
s.homepage = "http://github.com/bugsnag/bugsnag-ruby"
|
11
|
+
s.licenses = ["MIT"]
|
12
|
+
|
13
|
+
s.files = `git ls-files`.split("\n")
|
15
14
|
s.extra_rdoc_files = [
|
16
15
|
"LICENSE.txt",
|
17
16
|
"README.md"
|
18
17
|
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
".rspec",
|
22
|
-
".travis.yml",
|
23
|
-
"CHANGELOG.md",
|
24
|
-
"Gemfile",
|
25
|
-
"Gemfile.lock",
|
26
|
-
"LICENSE.txt",
|
27
|
-
"README.md",
|
28
|
-
"Rakefile",
|
29
|
-
"VERSION",
|
30
|
-
"bugsnag.gemspec",
|
31
|
-
"lib/bugsnag.rb",
|
32
|
-
"lib/bugsnag/capistrano.rb",
|
33
|
-
"lib/bugsnag/configuration.rb",
|
34
|
-
"lib/bugsnag/delay/resque.rb",
|
35
|
-
"lib/bugsnag/helpers.rb",
|
36
|
-
"lib/bugsnag/mailman.rb",
|
37
|
-
"lib/bugsnag/meta_data.rb",
|
38
|
-
"lib/bugsnag/middleware/callbacks.rb",
|
39
|
-
"lib/bugsnag/middleware/rack_request.rb",
|
40
|
-
"lib/bugsnag/middleware/rails2_request.rb",
|
41
|
-
"lib/bugsnag/middleware/rails3_request.rb",
|
42
|
-
"lib/bugsnag/middleware/warden_user.rb",
|
43
|
-
"lib/bugsnag/middleware_stack.rb",
|
44
|
-
"lib/bugsnag/notification.rb",
|
45
|
-
"lib/bugsnag/rack.rb",
|
46
|
-
"lib/bugsnag/rails.rb",
|
47
|
-
"lib/bugsnag/rails/action_controller_rescue.rb",
|
48
|
-
"lib/bugsnag/rails/active_record_rescue.rb",
|
49
|
-
"lib/bugsnag/rails/controller_methods.rb",
|
50
|
-
"lib/bugsnag/railtie.rb",
|
51
|
-
"lib/bugsnag/rake.rb",
|
52
|
-
"lib/bugsnag/resque.rb",
|
53
|
-
"lib/bugsnag/sidekiq.rb",
|
54
|
-
"lib/bugsnag/tasks.rb",
|
55
|
-
"lib/bugsnag/tasks/bugsnag.rake",
|
56
|
-
"lib/bugsnag/version.rb",
|
57
|
-
"lib/generators/bugsnag/bugsnag_generator.rb",
|
58
|
-
"rails/init.rb",
|
59
|
-
"spec/helper_spec.rb",
|
60
|
-
"spec/middleware_spec.rb",
|
61
|
-
"spec/notification_spec.rb",
|
62
|
-
"spec/rack_spec.rb",
|
63
|
-
"spec/spec_helper.rb"
|
64
|
-
]
|
65
|
-
s.homepage = "http://github.com/bugsnag/bugsnag-ruby"
|
66
|
-
s.licenses = ["MIT"]
|
67
18
|
s.require_paths = ["lib"]
|
68
|
-
s.rubygems_version = "2.0.3"
|
69
|
-
s.summary = "Ruby notifier for bugsnag.com"
|
70
19
|
|
71
|
-
|
72
|
-
|
20
|
+
s.add_runtime_dependency 'multi_json', ["~> 1.0"]
|
21
|
+
s.add_runtime_dependency 'httparty', ["< 1.0", ">= 0.6"]
|
73
22
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.11.0"])
|
78
|
-
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
79
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
80
|
-
else
|
81
|
-
s.add_dependency(%q<multi_json>, ["~> 1.0"])
|
82
|
-
s.add_dependency(%q<httparty>, ["< 1.0", ">= 0.6"])
|
83
|
-
s.add_dependency(%q<rspec>, ["~> 2.11.0"])
|
84
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
85
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
86
|
-
end
|
87
|
-
else
|
88
|
-
s.add_dependency(%q<multi_json>, ["~> 1.0"])
|
89
|
-
s.add_dependency(%q<httparty>, ["< 1.0", ">= 0.6"])
|
90
|
-
s.add_dependency(%q<rspec>, ["~> 2.11.0"])
|
91
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
92
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
93
|
-
end
|
23
|
+
s.add_development_dependency 'rspec'
|
24
|
+
s.add_development_dependency 'rdoc'
|
25
|
+
s.add_development_dependency 'rake'
|
94
26
|
end
|
95
27
|
|
data/lib/bugsnag/notification.rb
CHANGED
@@ -77,7 +77,9 @@ module Bugsnag
|
|
77
77
|
|
78
78
|
@exceptions << ex
|
79
79
|
|
80
|
-
if ex.respond_to?(:
|
80
|
+
if ex.respond_to?(:cause) && ex.cause
|
81
|
+
ex = ex.cause
|
82
|
+
elsif ex.respond_to?(:continued_exception) && ex.continued_exception
|
81
83
|
ex = ex.continued_exception
|
82
84
|
elsif ex.respond_to?(:original_exception) && ex.original_exception
|
83
85
|
ex = ex.original_exception
|
data/spec/notification_spec.rb
CHANGED
@@ -6,6 +6,15 @@ module ActiveRecord; class RecordNotFound < RuntimeError; end; end
|
|
6
6
|
class NestedException < StandardError; attr_accessor :original_exception; end
|
7
7
|
class BugsnagTestExceptionWithMetaData < Exception; include Bugsnag::MetaData; end
|
8
8
|
|
9
|
+
class Ruby21Exception < RuntimeError
|
10
|
+
attr_accessor :cause
|
11
|
+
def self.raise!(msg)
|
12
|
+
e = new(msg)
|
13
|
+
e.cause = $!
|
14
|
+
raise e
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
9
18
|
describe Bugsnag::Notification do
|
10
19
|
it "should contain an api_key if one is set" do
|
11
20
|
Bugsnag::Notification.should_receive(:deliver_exception_payload) do |endpoint, payload|
|
@@ -467,6 +476,23 @@ describe Bugsnag::Notification do
|
|
467
476
|
Bugsnag.notify_or_ignore(BugsnagTestException.new("It crashed"))
|
468
477
|
end
|
469
478
|
|
479
|
+
it "should send the cause of the exception" do
|
480
|
+
Bugsnag::Notification.should_receive(:deliver_exception_payload) do |endpoint, payload|
|
481
|
+
event = get_event_from_payload(payload)
|
482
|
+
event[:exceptions].should have(2).items
|
483
|
+
end
|
484
|
+
|
485
|
+
begin
|
486
|
+
begin
|
487
|
+
raise "jiminey"
|
488
|
+
rescue
|
489
|
+
Ruby21Exception.raise! "cricket"
|
490
|
+
end
|
491
|
+
rescue
|
492
|
+
Bugsnag.notify $!
|
493
|
+
end
|
494
|
+
end
|
495
|
+
|
470
496
|
it "should not unwrap the same exception twice" do
|
471
497
|
Bugsnag::Notification.should_receive(:deliver_exception_payload) do |endpoint, payload|
|
472
498
|
event = get_event_from_payload(payload)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bugsnag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -48,44 +48,44 @@ dependencies:
|
|
48
48
|
name: rspec
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: '0'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- -
|
58
|
+
- - '>='
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
60
|
+
version: '0'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: rdoc
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- -
|
65
|
+
- - '>='
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '0'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- -
|
72
|
+
- - '>='
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '0'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
76
|
+
name: rake
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- -
|
79
|
+
- - '>='
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
81
|
+
version: '0'
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- -
|
86
|
+
- - '>='
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
88
|
+
version: '0'
|
89
89
|
description: Ruby notifier for bugsnag.com
|
90
90
|
email: james@bugsnag.com
|
91
91
|
executables: []
|
@@ -95,11 +95,11 @@ extra_rdoc_files:
|
|
95
95
|
- README.md
|
96
96
|
files:
|
97
97
|
- .document
|
98
|
+
- .gitignore
|
98
99
|
- .rspec
|
99
100
|
- .travis.yml
|
100
101
|
- CHANGELOG.md
|
101
102
|
- Gemfile
|
102
|
-
- Gemfile.lock
|
103
103
|
- LICENSE.txt
|
104
104
|
- README.md
|
105
105
|
- Rakefile
|
data/Gemfile.lock
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
addressable (2.3.5)
|
5
|
-
builder (3.2.2)
|
6
|
-
diff-lcs (1.1.3)
|
7
|
-
faraday (0.8.8)
|
8
|
-
multipart-post (~> 1.2.0)
|
9
|
-
git (1.2.6)
|
10
|
-
github_api (0.10.1)
|
11
|
-
addressable
|
12
|
-
faraday (~> 0.8.1)
|
13
|
-
hashie (>= 1.2)
|
14
|
-
multi_json (~> 1.4)
|
15
|
-
nokogiri (~> 1.5.2)
|
16
|
-
oauth2
|
17
|
-
hashie (2.0.5)
|
18
|
-
highline (1.6.19)
|
19
|
-
httparty (0.10.2)
|
20
|
-
multi_json (~> 1.0)
|
21
|
-
multi_xml (>= 0.5.2)
|
22
|
-
httpauth (0.2.0)
|
23
|
-
jeweler (1.8.8)
|
24
|
-
builder
|
25
|
-
bundler (~> 1.0)
|
26
|
-
git (>= 1.2.5)
|
27
|
-
github_api (= 0.10.1)
|
28
|
-
highline (>= 1.6.15)
|
29
|
-
nokogiri (= 1.5.10)
|
30
|
-
rake
|
31
|
-
rdoc
|
32
|
-
json (1.8.0)
|
33
|
-
jwt (0.1.8)
|
34
|
-
multi_json (>= 1.5)
|
35
|
-
multi_json (1.7.2)
|
36
|
-
multi_xml (0.5.3)
|
37
|
-
multipart-post (1.2.0)
|
38
|
-
nokogiri (1.5.10)
|
39
|
-
oauth2 (0.9.2)
|
40
|
-
faraday (~> 0.8)
|
41
|
-
httpauth (~> 0.2)
|
42
|
-
jwt (~> 0.1.4)
|
43
|
-
multi_json (~> 1.0)
|
44
|
-
multi_xml (~> 0.5)
|
45
|
-
rack (~> 1.2)
|
46
|
-
rack (1.5.2)
|
47
|
-
rake (10.1.0)
|
48
|
-
rdoc (3.12.2)
|
49
|
-
json (~> 1.4)
|
50
|
-
rspec (2.11.0)
|
51
|
-
rspec-core (~> 2.11.0)
|
52
|
-
rspec-expectations (~> 2.11.0)
|
53
|
-
rspec-mocks (~> 2.11.0)
|
54
|
-
rspec-core (2.11.1)
|
55
|
-
rspec-expectations (2.11.3)
|
56
|
-
diff-lcs (~> 1.1.3)
|
57
|
-
rspec-mocks (2.11.3)
|
58
|
-
|
59
|
-
PLATFORMS
|
60
|
-
ruby
|
61
|
-
|
62
|
-
DEPENDENCIES
|
63
|
-
httparty (>= 0.6, < 1.0)
|
64
|
-
jeweler (~> 1.8.4)
|
65
|
-
multi_json (~> 1.0)
|
66
|
-
rdoc (~> 3.12)
|
67
|
-
rspec (~> 2.11.0)
|