bugsnag 1.5.3 → 1.6.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 273d6b5e30c112e42d9d667dccbab65af1c4a64e
4
+ data.tar.gz: c798d5e662751dc2b0774ea72e38ca4614275562
5
+ SHA512:
6
+ metadata.gz: 692be4458a34c4b201ed88f8e9ff4ce2146e57fcad51abe41429c183334d66c654f183dc82d897327ef9a3b8802333a8718dc8fc99606aba6c18ee4cd66b3307
7
+ data.tar.gz: 13dea215afa1c2fd776eaab65a4b75f0bcb89b98b5a9f870a009134ed4baf9cd2c4ce7e20fdb222f9ff4fe63433e79924214513061aa39694e63b03b9bf2f024
@@ -1,6 +1,12 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ 1.6.0
5
+ -----
6
+ - Add support for catching crashes in [mailman](https://github.com/titanous/mailman) apps
7
+ - Automatically enable Bugsnag's resque failure backend
8
+ - Add automatic rake integration for rails apps
9
+
4
10
  1.5.3
5
11
  -----
6
12
  - Deal with self-referential meta data correctly.
@@ -1,21 +1,51 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ addressable (2.3.5)
5
+ builder (3.2.2)
4
6
  diff-lcs (1.1.3)
5
- git (1.2.5)
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)
6
19
  httparty (0.10.2)
7
20
  multi_json (~> 1.0)
8
21
  multi_xml (>= 0.5.2)
9
- jeweler (1.8.4)
22
+ httpauth (0.2.0)
23
+ jeweler (1.8.8)
24
+ builder
10
25
  bundler (~> 1.0)
11
26
  git (>= 1.2.5)
27
+ github_api (= 0.10.1)
28
+ highline (>= 1.6.15)
29
+ nokogiri (= 1.5.10)
12
30
  rake
13
31
  rdoc
14
- json (1.7.7)
32
+ json (1.8.0)
33
+ jwt (0.1.8)
34
+ multi_json (>= 1.5)
15
35
  multi_json (1.7.2)
16
36
  multi_xml (0.5.3)
17
- rake (0.9.2.2)
18
- rdoc (3.12)
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)
19
49
  json (~> 1.4)
20
50
  rspec (2.11.0)
21
51
  rspec-core (~> 2.11.0)
data/README.md CHANGED
@@ -156,6 +156,10 @@ Bugsnag.notify(RuntimeError.new("Something broke"), {
156
156
  Rake Integration
157
157
  ----------------
158
158
 
159
+ Rake integration is automatically enabled in Rails 3 apps, so providing you load the environment
160
+ in your Rake tasks you dont need to do anything to get Rake support. If you choose not to load
161
+ your environment, you can manually configure Bugsnag with a `bugsnag.configure` block in the Rakefile.
162
+
159
163
  Bugsnag can automatically notify of all exceptions that happen in your rake tasks. In order
160
164
  to enable this, you need to `require "bugsnag/rake"` in your Rakefile, like so:
161
165
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.3
1
+ 1.6.0
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{bugsnag}
8
- s.version = "1.5.3"
7
+ s.name = "bugsnag"
8
+ s.version = "1.6.0"
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-10-07}
13
- s.description = %q{Ruby notifier for bugsnag.com}
14
- s.email = %q{james@bugsnag.com}
12
+ s.date = "2013-10-10"
13
+ s.description = "Ruby notifier for bugsnag.com"
14
+ s.email = "james@bugsnag.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.md"
@@ -34,6 +34,7 @@ Gem::Specification.new do |s|
34
34
  "lib/bugsnag/configuration.rb",
35
35
  "lib/bugsnag/delay/resque.rb",
36
36
  "lib/bugsnag/helpers.rb",
37
+ "lib/bugsnag/mailman.rb",
37
38
  "lib/bugsnag/meta_data.rb",
38
39
  "lib/bugsnag/middleware/callbacks.rb",
39
40
  "lib/bugsnag/middleware/rack_request.rb",
@@ -48,11 +49,11 @@ Gem::Specification.new do |s|
48
49
  "lib/bugsnag/rails/controller_methods.rb",
49
50
  "lib/bugsnag/railtie.rb",
50
51
  "lib/bugsnag/rake.rb",
52
+ "lib/bugsnag/resque.rb",
51
53
  "lib/bugsnag/sidekiq.rb",
52
54
  "lib/bugsnag/tasks.rb",
53
55
  "lib/bugsnag/tasks/bugsnag.rake",
54
56
  "lib/bugsnag/version.rb",
55
- "lib/resque/failure/bugsnag.rb",
56
57
  "rails/init.rb",
57
58
  "spec/helper_spec.rb",
58
59
  "spec/middleware_spec.rb",
@@ -60,32 +61,31 @@ Gem::Specification.new do |s|
60
61
  "spec/rack_spec.rb",
61
62
  "spec/spec_helper.rb"
62
63
  ]
63
- s.homepage = %q{http://github.com/bugsnag/bugsnag-ruby}
64
+ s.homepage = "http://github.com/bugsnag/bugsnag-ruby"
64
65
  s.licenses = ["MIT"]
65
66
  s.require_paths = ["lib"]
66
- s.rubygems_version = %q{1.3.6}
67
- s.summary = %q{Ruby notifier for bugsnag.com}
67
+ s.rubygems_version = "2.0.3"
68
+ s.summary = "Ruby notifier for bugsnag.com"
68
69
 
69
70
  if s.respond_to? :specification_version then
70
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
71
- s.specification_version = 3
71
+ s.specification_version = 4
72
72
 
73
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
73
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
74
74
  s.add_runtime_dependency(%q<multi_json>, ["~> 1.0"])
75
- s.add_runtime_dependency(%q<httparty>, [">= 0.6", "< 1.0"])
75
+ s.add_runtime_dependency(%q<httparty>, ["< 1.0", ">= 0.6"])
76
76
  s.add_development_dependency(%q<rspec>, ["~> 2.11.0"])
77
77
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
78
78
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
79
79
  else
80
80
  s.add_dependency(%q<multi_json>, ["~> 1.0"])
81
- s.add_dependency(%q<httparty>, [">= 0.6", "< 1.0"])
81
+ s.add_dependency(%q<httparty>, ["< 1.0", ">= 0.6"])
82
82
  s.add_dependency(%q<rspec>, ["~> 2.11.0"])
83
83
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
84
84
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
85
85
  end
86
86
  else
87
87
  s.add_dependency(%q<multi_json>, ["~> 1.0"])
88
- s.add_dependency(%q<httparty>, [">= 0.6", "< 1.0"])
88
+ s.add_dependency(%q<httparty>, ["< 1.0", ">= 0.6"])
89
89
  s.add_dependency(%q<rspec>, ["~> 2.11.0"])
90
90
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
91
91
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
@@ -9,8 +9,9 @@ require "bugsnag/helpers"
9
9
  require "bugsnag/rack"
10
10
  require "bugsnag/railtie" if defined?(Rails::Railtie)
11
11
 
12
- require "resque/failure/bugsnag" if defined?(::Resque::Job)
12
+ require "bugsnag/resque" if defined?(::Resque::Job)
13
13
  require "bugsnag/sidekiq" if defined?(Sidekiq)
14
+ require "bugsnag/mailman" if defined?(Mailman)
14
15
 
15
16
  module Bugsnag
16
17
  LOG_PREFIX = "** [Bugsnag] "
@@ -0,0 +1,18 @@
1
+ module Bugsnag
2
+ class Mailman
3
+ def call(mail)
4
+ begin
5
+ yield
6
+ rescue => ex
7
+ Bugsnag.notify(ex, :mailman => {"message" => mail.to_s})
8
+ raise
9
+ ensure
10
+ Bugsnag.clear_request_data
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ if Mailman.config.respond_to?(:middleware)
17
+ Mailman.config.middleware.add ::Bugsnag::Mailman
18
+ end
@@ -8,6 +8,7 @@ require "bugsnag/middleware/rack_request"
8
8
  module Bugsnag
9
9
  class Railtie < Rails::Railtie
10
10
  rake_tasks do
11
+ require "bugsnag/rake"
11
12
  load "bugsnag/tasks/bugsnag.rake"
12
13
  end
13
14
 
@@ -0,0 +1,38 @@
1
+ require "resque/failure/base"
2
+ require "resque/failure/multiple"
3
+
4
+ module Bugsnag
5
+ class Resque < ::Resque::Failure::Base
6
+ def self.configure(&block)
7
+ add_failure_backend
8
+ Bugsnag.configure(&block)
9
+ end
10
+
11
+ def self.add_failure_backend
12
+ return if ::Resque::Failure.backend == self
13
+
14
+ # Ensure resque is using a "Multiple" failure backend
15
+ unless ::Resque::Failure.backend < ::Resque::Failure::Multiple
16
+ original_backend = ::Resque::Failure.backend
17
+ ::Resque::Failure.backend = ::Resque::Failure::Multiple
18
+ ::Resque::Failure.backend.classes ||= []
19
+ ::Resque::Failure.backend.classes << original_backend
20
+ end
21
+
22
+ # Add Bugsnag failure backend
23
+ unless ::Resque::Failure.backend.classes.include?(self)
24
+ ::Resque::Failure.backend.classes << self
25
+ end
26
+ end
27
+
28
+ def save
29
+ Bugsnag.auto_notify(exception, {:context => "resque##{queue}", :payload => payload})
30
+ end
31
+ end
32
+ end
33
+
34
+ # For backwards compatibility
35
+ Resque::Failure::Bugsnag = Bugsnag::Resque
36
+
37
+ # Auto-load the failure backend
38
+ Bugsnag::Resque.add_failure_backend
@@ -21,7 +21,7 @@ namespace :bugsnag do
21
21
  begin
22
22
  require Rails.root.join('config/initializers/bugsnag')
23
23
  rescue Exception => e
24
- yml_filename = Rails.root.join("config/bugsnag.yml")
24
+ yml_filename = Rails.root.join("config","bugsnag.yml")
25
25
  config = YAML.load_file(yml_filename) if File.exists?(yml_filename)
26
26
  Bugsnag.configure(config[releaseStage] ? config[releaseStage] : config) if config
27
27
  end
metadata CHANGED
@@ -1,105 +1,99 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bugsnag
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 5
8
- - 3
9
- version: 1.5.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.6.0
10
5
  platform: ruby
11
- authors:
6
+ authors:
12
7
  - James Smith
13
8
  autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
-
17
- date: 2013-10-07 00:00:00 -07:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- prerelease: false
22
- type: :runtime
11
+ date: 2013-10-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
23
14
  name: multi_json
24
- version_requirements: &id001 !ruby/object:Gem::Requirement
25
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
26
17
  - - ~>
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 1
30
- - 0
31
- version: "1.0"
32
- requirement: *id001
33
- - !ruby/object:Gem::Dependency
34
- prerelease: false
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
35
20
  type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
36
28
  name: httparty
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- - 6
44
- version: "0.6"
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
45
31
  - - <
46
- - !ruby/object:Gem::Version
47
- segments:
48
- - 1
49
- - 0
50
- version: "1.0"
51
- requirement: *id002
52
- - !ruby/object:Gem::Dependency
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ - - '>='
35
+ - !ruby/object:Gem::Version
36
+ version: '0.6'
37
+ type: :runtime
53
38
  prerelease: false
54
- type: :development
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - <
42
+ - !ruby/object:Gem::Version
43
+ version: '1.0'
44
+ - - '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0.6'
47
+ - !ruby/object:Gem::Dependency
55
48
  name: rspec
56
- version_requirements: &id003 !ruby/object:Gem::Requirement
57
- requirements:
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
58
51
  - - ~>
59
- - !ruby/object:Gem::Version
60
- segments:
61
- - 2
62
- - 11
63
- - 0
52
+ - !ruby/object:Gem::Version
64
53
  version: 2.11.0
65
- requirement: *id003
66
- - !ruby/object:Gem::Dependency
67
- prerelease: false
68
54
  type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: 2.11.0
61
+ - !ruby/object:Gem::Dependency
69
62
  name: rdoc
70
- version_requirements: &id004 !ruby/object:Gem::Requirement
71
- requirements:
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
72
65
  - - ~>
73
- - !ruby/object:Gem::Version
74
- segments:
75
- - 3
76
- - 12
77
- version: "3.12"
78
- requirement: *id004
79
- - !ruby/object:Gem::Dependency
80
- prerelease: false
66
+ - !ruby/object:Gem::Version
67
+ version: '3.12'
81
68
  type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: '3.12'
75
+ - !ruby/object:Gem::Dependency
82
76
  name: jeweler
83
- version_requirements: &id005 !ruby/object:Gem::Requirement
84
- requirements:
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ~>
80
+ - !ruby/object:Gem::Version
81
+ version: 1.8.4
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
85
86
  - - ~>
86
- - !ruby/object:Gem::Version
87
- segments:
88
- - 1
89
- - 8
90
- - 4
87
+ - !ruby/object:Gem::Version
91
88
  version: 1.8.4
92
- requirement: *id005
93
89
  description: Ruby notifier for bugsnag.com
94
90
  email: james@bugsnag.com
95
91
  executables: []
96
-
97
92
  extensions: []
98
-
99
- extra_rdoc_files:
93
+ extra_rdoc_files:
100
94
  - LICENSE.txt
101
95
  - README.md
102
- files:
96
+ files:
103
97
  - .document
104
98
  - .rspec
105
99
  - .ruby-version
@@ -117,6 +111,7 @@ files:
117
111
  - lib/bugsnag/configuration.rb
118
112
  - lib/bugsnag/delay/resque.rb
119
113
  - lib/bugsnag/helpers.rb
114
+ - lib/bugsnag/mailman.rb
120
115
  - lib/bugsnag/meta_data.rb
121
116
  - lib/bugsnag/middleware/callbacks.rb
122
117
  - lib/bugsnag/middleware/rack_request.rb
@@ -131,46 +126,39 @@ files:
131
126
  - lib/bugsnag/rails/controller_methods.rb
132
127
  - lib/bugsnag/railtie.rb
133
128
  - lib/bugsnag/rake.rb
129
+ - lib/bugsnag/resque.rb
134
130
  - lib/bugsnag/sidekiq.rb
135
131
  - lib/bugsnag/tasks.rb
136
132
  - lib/bugsnag/tasks/bugsnag.rake
137
133
  - lib/bugsnag/version.rb
138
- - lib/resque/failure/bugsnag.rb
139
134
  - rails/init.rb
140
135
  - spec/helper_spec.rb
141
136
  - spec/middleware_spec.rb
142
137
  - spec/notification_spec.rb
143
138
  - spec/rack_spec.rb
144
139
  - spec/spec_helper.rb
145
- has_rdoc: true
146
140
  homepage: http://github.com/bugsnag/bugsnag-ruby
147
- licenses:
141
+ licenses:
148
142
  - MIT
143
+ metadata: {}
149
144
  post_install_message:
150
145
  rdoc_options: []
151
-
152
- require_paths:
146
+ require_paths:
153
147
  - lib
154
- required_ruby_version: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- segments:
159
- - 0
160
- version: "0"
161
- required_rubygems_version: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- segments:
166
- - 0
167
- version: "0"
148
+ required_ruby_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ required_rubygems_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
168
158
  requirements: []
169
-
170
159
  rubyforge_project:
171
- rubygems_version: 1.3.6
160
+ rubygems_version: 2.0.3
172
161
  signing_key:
173
- specification_version: 3
162
+ specification_version: 4
174
163
  summary: Ruby notifier for bugsnag.com
175
164
  test_files: []
176
-
@@ -1,46 +0,0 @@
1
- # Resque support
2
-
3
- # How to use:
4
- # Resque::Failure::Multiple.classes = [Resque::Failure::Redis, Resque::Failure::Bugsnag]
5
- # Resque::Failure.backend = Resque::Failure::Multiple
6
- #
7
-
8
- begin
9
- require "bugsnag"
10
- rescue LoadError
11
- raise "Can't find 'bugsnag' gem. Please add it to your Gemfile or install it."
12
- end
13
-
14
- require "resque/failure/base"
15
-
16
- module Resque
17
- module Failure
18
- class Bugsnag < Base
19
- def self.configure(&block)
20
- unless ::Resque::Failure.backend < ::Resque::Failure::Multiple
21
- original_backend = ::Resque::Failure.backend
22
- ::Resque::Failure.backend = ::Resque::Failure::Multiple
23
- ::Resque::Failure.backend.classes ||= []
24
- ::Resque::Failure.backend.classes << original_backend
25
- end
26
-
27
- ::Resque::Failure.backend.classes << self
28
- ::Bugsnag.configure(&block)
29
- end
30
-
31
- def save
32
- ::Bugsnag.auto_notify(exception, bugsnag_job_data)
33
- end
34
-
35
- private
36
- def bugsnag_job_data
37
- {
38
- :context => "resque##{queue}",
39
- :meta_data => {
40
- :payload => payload
41
- }
42
- }
43
- end
44
- end
45
- end
46
- end