bugsnag 1.0.7 → 1.0.8
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.
- data/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/bugsnag.gemspec +4 -4
- data/lib/bugsnag.rb +1 -1
- data/lib/bugsnag/configuration.rb +2 -5
- data/lib/bugsnag/{resque.rb → delay/resque.rb} +7 -5
- data/lib/bugsnag/notification.rb +17 -4
- data/test/test_bugsnag.rb +0 -1
- metadata +30 -30
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.8
|
data/bugsnag.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "bugsnag"
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.8"
|
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 = "2012-
|
12
|
+
s.date = "2012-02-27"
|
13
13
|
s.description = "Ruby notifier for bugsnag.com"
|
14
14
|
s.email = "james@bugsnag.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
"bugsnag.gemspec",
|
28
28
|
"lib/bugsnag.rb",
|
29
29
|
"lib/bugsnag/configuration.rb",
|
30
|
+
"lib/bugsnag/delay/resque.rb",
|
30
31
|
"lib/bugsnag/helpers.rb",
|
31
32
|
"lib/bugsnag/notification.rb",
|
32
33
|
"lib/bugsnag/rack.rb",
|
@@ -34,7 +35,6 @@ Gem::Specification.new do |s|
|
|
34
35
|
"lib/bugsnag/rails/action_controller_rescue.rb",
|
35
36
|
"lib/bugsnag/rails/controller_methods.rb",
|
36
37
|
"lib/bugsnag/railtie.rb",
|
37
|
-
"lib/bugsnag/resque.rb",
|
38
38
|
"lib/bugsnag/version.rb",
|
39
39
|
"rails/init.rb",
|
40
40
|
"test/helper.rb",
|
@@ -43,7 +43,7 @@ Gem::Specification.new do |s|
|
|
43
43
|
s.homepage = "http://github.com/bugsnag/bugsnag-ruby"
|
44
44
|
s.licenses = ["MIT"]
|
45
45
|
s.require_paths = ["lib"]
|
46
|
-
s.rubygems_version = "1.8.
|
46
|
+
s.rubygems_version = "1.8.15"
|
47
47
|
s.summary = "Ruby notifier for bugsnag.com"
|
48
48
|
|
49
49
|
if s.respond_to? :specification_version then
|
data/lib/bugsnag.rb
CHANGED
@@ -17,7 +17,7 @@ module Bugsnag
|
|
17
17
|
yield(configuration)
|
18
18
|
|
19
19
|
# Use resque for asynchronous notification if required
|
20
|
-
require "bugsnag/resque" if configuration.
|
20
|
+
require "bugsnag/delay/resque" if configuration.delay_with_resque && defined?(Resque)
|
21
21
|
|
22
22
|
# Log that we are ready to rock
|
23
23
|
if configuration.api_key && !@logged_ready
|
@@ -1,15 +1,13 @@
|
|
1
1
|
module Bugsnag
|
2
2
|
class Configuration
|
3
3
|
OPTIONS = [
|
4
|
-
:api_key, :release_stage, :project_root, :app_version,
|
4
|
+
:api_key, :release_stage, :use_ssl, :project_root, :app_version,
|
5
5
|
:framework, :endpoint, :logger, :disable_auto_notification,
|
6
6
|
:params_filters, :stacktrace_filters, :ignore_classes,
|
7
|
-
:
|
7
|
+
:delay_with_resque
|
8
8
|
]
|
9
9
|
OPTIONS.each {|o| attr_accessor o }
|
10
10
|
|
11
|
-
|
12
|
-
DEFAULT_ENDPOINT = "http://api.bugsnag.com/notify"
|
13
11
|
DEFAULT_PARAMS_FILTERS = %w(password password_confirmation).freeze
|
14
12
|
|
15
13
|
DEFAULT_STACKTRACE_FILTERS = [
|
@@ -42,7 +40,6 @@ module Bugsnag
|
|
42
40
|
|
43
41
|
|
44
42
|
def initialize
|
45
|
-
@endpoint = DEFAULT_ENDPOINT
|
46
43
|
@params_filters = DEFAULT_PARAMS_FILTERS.dup
|
47
44
|
@stacktrace_filters = DEFAULT_STACKTRACE_FILTERS.dup
|
48
45
|
@ignore_classes = DEFAULT_IGNORE_CLASSES.dup
|
@@ -1,8 +1,10 @@
|
|
1
1
|
module Bugsnag
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
module Delay
|
3
|
+
class Resque
|
4
|
+
@queue = "bugsnag"
|
5
|
+
def self.perform(*args)
|
6
|
+
Bugsnag::Notification.deliver_exception_payload_without_resque(*args)
|
7
|
+
end
|
6
8
|
end
|
7
9
|
end
|
8
10
|
end
|
@@ -10,7 +12,7 @@ end
|
|
10
12
|
Bugsnag::Notification.class_eval do
|
11
13
|
class << self
|
12
14
|
def deliver_exception_payload_with_resque(*args)
|
13
|
-
Resque.enqueue(Bugsnag::Resque, *args)
|
15
|
+
Resque.enqueue(Bugsnag::Delay::Resque, *args)
|
14
16
|
end
|
15
17
|
|
16
18
|
alias_method :deliver_exception_payload_without_resque, :deliver_exception_payload
|
data/lib/bugsnag/notification.rb
CHANGED
@@ -8,7 +8,9 @@ module Bugsnag
|
|
8
8
|
NOTIFIER_NAME = "Ruby Bugsnag Notifier"
|
9
9
|
NOTIFIER_VERSION = Bugsnag::VERSION
|
10
10
|
NOTIFIER_URL = "http://www.bugsnag.com"
|
11
|
-
|
11
|
+
|
12
|
+
DEFAULT_ENDPOINT = "api.bugsnag.com/notify"
|
13
|
+
|
12
14
|
# HTTParty settings
|
13
15
|
headers "Content-Type" => "application/json"
|
14
16
|
default_timeout 5
|
@@ -22,7 +24,7 @@ module Bugsnag
|
|
22
24
|
# Attributes from configuration
|
23
25
|
attr_accessor :api_key, :params_filters, :stacktrace_filters,
|
24
26
|
:ignore_classes, :endpoint, :app_version, :release_stage,
|
25
|
-
:project_root
|
27
|
+
:project_root, :use_ssl
|
26
28
|
|
27
29
|
|
28
30
|
def self.deliver_exception_payload(endpoint, payload_string)
|
@@ -41,6 +43,11 @@ module Bugsnag
|
|
41
43
|
end
|
42
44
|
|
43
45
|
def deliver
|
46
|
+
# Unless we are using a custom endpoint, use api.bugsnag.com, and work out protocol
|
47
|
+
unless self.endpoint
|
48
|
+
self.endpoint = (self.use_ssl ? "https://" : "http://") + DEFAULT_ENDPOINT
|
49
|
+
end
|
50
|
+
|
44
51
|
Bugsnag.log("Notifying #{self.endpoint} of exception")
|
45
52
|
|
46
53
|
payload = {
|
@@ -60,7 +67,7 @@ module Bugsnag
|
|
60
67
|
end
|
61
68
|
|
62
69
|
def ignore?
|
63
|
-
self.ignore_classes.include?(self.exception
|
70
|
+
self.ignore_classes.include?(error_class(self.exception))
|
64
71
|
end
|
65
72
|
|
66
73
|
|
@@ -106,10 +113,16 @@ module Bugsnag
|
|
106
113
|
|
107
114
|
def exception_hash
|
108
115
|
{
|
109
|
-
:errorClass => self.exception
|
116
|
+
:errorClass => error_class(self.exception),
|
110
117
|
:message => self.exception.message,
|
111
118
|
:stacktrace => stacktrace_hash
|
112
119
|
}
|
113
120
|
end
|
121
|
+
|
122
|
+
def error_class(exception)
|
123
|
+
# The "Class" check is for some strange exceptions like Timeout::Error
|
124
|
+
# which throw the error class instead of an instance
|
125
|
+
(exception.is_a? Class) ? exception.name : exception.class.name
|
126
|
+
end
|
114
127
|
end
|
115
128
|
end
|
data/test/test_bugsnag.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bugsnag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 8
|
10
|
+
version: 1.0.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- James Smith
|
@@ -15,11 +15,10 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-02-27 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
21
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
23
22
|
none: false
|
24
23
|
requirements:
|
25
24
|
- - ">="
|
@@ -28,12 +27,12 @@ dependencies:
|
|
28
27
|
segments:
|
29
28
|
- 0
|
30
29
|
version: "0"
|
31
|
-
|
32
|
-
name: multi_json
|
30
|
+
requirement: *id001
|
33
31
|
type: :runtime
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
32
|
prerelease: false
|
36
|
-
|
33
|
+
name: multi_json
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
37
36
|
none: false
|
38
37
|
requirements:
|
39
38
|
- - ">="
|
@@ -42,12 +41,12 @@ dependencies:
|
|
42
41
|
segments:
|
43
42
|
- 0
|
44
43
|
version: "0"
|
45
|
-
|
46
|
-
name: httparty
|
44
|
+
requirement: *id002
|
47
45
|
type: :runtime
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
46
|
prerelease: false
|
50
|
-
|
47
|
+
name: httparty
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
51
50
|
none: false
|
52
51
|
requirements:
|
53
52
|
- - ">="
|
@@ -56,12 +55,12 @@ dependencies:
|
|
56
55
|
segments:
|
57
56
|
- 0
|
58
57
|
version: "0"
|
59
|
-
|
60
|
-
name: shoulda
|
58
|
+
requirement: *id003
|
61
59
|
type: :development
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
60
|
prerelease: false
|
64
|
-
|
61
|
+
name: shoulda
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
65
64
|
none: false
|
66
65
|
requirements:
|
67
66
|
- - ~>
|
@@ -72,12 +71,12 @@ dependencies:
|
|
72
71
|
- 0
|
73
72
|
- 0
|
74
73
|
version: 1.0.0
|
75
|
-
|
76
|
-
name: bundler
|
74
|
+
requirement: *id004
|
77
75
|
type: :development
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
76
|
prerelease: false
|
80
|
-
|
77
|
+
name: bundler
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
81
80
|
none: false
|
82
81
|
requirements:
|
83
82
|
- - ~>
|
@@ -88,12 +87,12 @@ dependencies:
|
|
88
87
|
- 6
|
89
88
|
- 4
|
90
89
|
version: 1.6.4
|
91
|
-
|
92
|
-
name: jeweler
|
90
|
+
requirement: *id005
|
93
91
|
type: :development
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
92
|
prerelease: false
|
96
|
-
|
93
|
+
name: jeweler
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
97
96
|
none: false
|
98
97
|
requirements:
|
99
98
|
- - ">="
|
@@ -102,9 +101,10 @@ dependencies:
|
|
102
101
|
segments:
|
103
102
|
- 0
|
104
103
|
version: "0"
|
105
|
-
|
106
|
-
name: rcov
|
104
|
+
requirement: *id006
|
107
105
|
type: :development
|
106
|
+
prerelease: false
|
107
|
+
name: rcov
|
108
108
|
description: Ruby notifier for bugsnag.com
|
109
109
|
email: james@bugsnag.com
|
110
110
|
executables: []
|
@@ -125,6 +125,7 @@ files:
|
|
125
125
|
- bugsnag.gemspec
|
126
126
|
- lib/bugsnag.rb
|
127
127
|
- lib/bugsnag/configuration.rb
|
128
|
+
- lib/bugsnag/delay/resque.rb
|
128
129
|
- lib/bugsnag/helpers.rb
|
129
130
|
- lib/bugsnag/notification.rb
|
130
131
|
- lib/bugsnag/rack.rb
|
@@ -132,7 +133,6 @@ files:
|
|
132
133
|
- lib/bugsnag/rails/action_controller_rescue.rb
|
133
134
|
- lib/bugsnag/rails/controller_methods.rb
|
134
135
|
- lib/bugsnag/railtie.rb
|
135
|
-
- lib/bugsnag/resque.rb
|
136
136
|
- lib/bugsnag/version.rb
|
137
137
|
- rails/init.rb
|
138
138
|
- test/helper.rb
|
@@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
166
|
requirements: []
|
167
167
|
|
168
168
|
rubyforge_project:
|
169
|
-
rubygems_version: 1.8.
|
169
|
+
rubygems_version: 1.8.15
|
170
170
|
signing_key:
|
171
171
|
specification_version: 3
|
172
172
|
summary: Ruby notifier for bugsnag.com
|