bugsnag 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.txt +1 -1
- data/README.md +80 -18
- data/VERSION +1 -1
- data/bugsnag.gemspec +6 -3
- data/lib/bugsnag.rb +9 -0
- data/lib/bugsnag/capistrano.rb +47 -0
- data/lib/bugsnag/configuration.rb +2 -2
- data/lib/bugsnag/helpers.rb +3 -1
- data/lib/bugsnag/notification.rb +7 -2
- data/lib/bugsnag/rack.rb +12 -0
- data/lib/bugsnag/railtie.rb +4 -4
- data/lib/bugsnag/tasks.rb +3 -0
- data/lib/resque/failure/bugsnag.rb +1 -2
- data/lib/tasks/bugsnag.rake +52 -0
- metadata +26 -23
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,18 +1,15 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
Bugsnag Notifier for Ruby
|
2
|
+
=========================
|
3
3
|
|
4
4
|
The Bugsnag Notifier for Ruby gives you instant notification of exceptions
|
5
5
|
thrown from your **Rails**, **Sinatra**, **Rack** or **plain Ruby** app.
|
6
6
|
Any uncaught exceptions will trigger a notification to be sent to your
|
7
7
|
Bugsnag project.
|
8
8
|
|
9
|
-
|
10
|
-
What is Bugsnag?
|
11
|
-
----------------
|
12
|
-
|
13
9
|
[Bugsnag](http://bugsnag.com) captures errors in real-time from your web,
|
14
10
|
mobile and desktop applications, helping you to understand and resolve them
|
15
|
-
as fast as possible. [Create a free account](http://bugsnag.com)
|
11
|
+
as fast as possible. [Create a free account](http://bugsnag.com) to start
|
12
|
+
capturing exceptions from your applications.
|
16
13
|
|
17
14
|
|
18
15
|
How to Install (Rails)
|
@@ -199,6 +196,77 @@ By default, `ignore_classes` contains the following classes:
|
|
199
196
|
```
|
200
197
|
|
201
198
|
|
199
|
+
Deploy Tracking
|
200
|
+
---------------
|
201
|
+
|
202
|
+
Bugsnag allows you to track deploys of your apps. By sending the
|
203
|
+
source revision or application version to bugsnag.com when you deploy a new
|
204
|
+
version of your app, you'll be able to see which deploy each error was
|
205
|
+
introduced in.
|
206
|
+
|
207
|
+
### Using Capistrano
|
208
|
+
|
209
|
+
If you use [capistrano](https://github.com/capistrano/capistrano) to deploy
|
210
|
+
your apps, you can enable deploy tracking by adding the following line to your
|
211
|
+
app's `deploy.rb`:
|
212
|
+
|
213
|
+
```ruby
|
214
|
+
require "bugsnag/capistrano"
|
215
|
+
```
|
216
|
+
|
217
|
+
### Using Rake
|
218
|
+
|
219
|
+
If you aren't using capistrano, you can run the following rake command from
|
220
|
+
your deploy scripts.
|
221
|
+
|
222
|
+
```shell
|
223
|
+
rake bugsnag:deploy BUGSNAG_REVISION=source-control-revision BUGSNAG_RELEASE_STAGE=production
|
224
|
+
```
|
225
|
+
|
226
|
+
The bugsnag rake tasks will be automatically available for Rails 3
|
227
|
+
apps, to make the rake tasks available in other apps, add the following to
|
228
|
+
your `Rakefile`:
|
229
|
+
|
230
|
+
```ruby
|
231
|
+
require "bugsnag/tasks"
|
232
|
+
```
|
233
|
+
|
234
|
+
### Configuring Deploy Tracking
|
235
|
+
|
236
|
+
You can set the following environmental variables to override or specify
|
237
|
+
additional deploy information:
|
238
|
+
|
239
|
+
- **BUGSNAG_RELEASE_STAGE** -
|
240
|
+
The release stage (eg, production, staging) currently being deployed.
|
241
|
+
This is set automatically from your Bugsnag settings or rails/rack
|
242
|
+
environment.
|
243
|
+
|
244
|
+
- **BUGSNAG_API_KEY** -
|
245
|
+
Your Bugsnag API key. This is set automatically from your Bugsnag
|
246
|
+
settings in your app.
|
247
|
+
|
248
|
+
- **BUGSNAG_REPOSITORY** -
|
249
|
+
The repository from which you are deploying the code. This is set
|
250
|
+
automatically if you are using capistrano.
|
251
|
+
|
252
|
+
- **BUGSNAG_BRANCH** -
|
253
|
+
The source control branch from which you are deploying the code.
|
254
|
+
This is set automatically if you are using capistrano.
|
255
|
+
|
256
|
+
- **BUGSNAG_REVISION** -
|
257
|
+
The source control revision for the code you are currently deploying.
|
258
|
+
This is set automatically if you are using capistrano.
|
259
|
+
|
260
|
+
- **BUGSNAG_APP_VERSION** -
|
261
|
+
The app version of the code you are currently deploying. Only set this
|
262
|
+
if you tag your releases with [semantic version numbers](http://semver.org/)
|
263
|
+
and deploy infrequently.
|
264
|
+
|
265
|
+
For more information, check out the [deploy tracking api](https://bugsnag.com/docs/deploy-tracking-api)
|
266
|
+
documentation.
|
267
|
+
|
268
|
+
|
269
|
+
|
202
270
|
Reporting Bugs or Feature Requests
|
203
271
|
----------------------------------
|
204
272
|
|
@@ -210,21 +278,15 @@ project here:
|
|
210
278
|
|
211
279
|
Contributing
|
212
280
|
------------
|
213
|
-
|
214
|
-
-
|
215
|
-
implemented or the bug hasn't been fixed yet
|
216
|
-
- Check out the issue tracker to make sure someone already hasn't requested
|
217
|
-
it and/or contributed it
|
218
|
-
- Fork the project
|
219
|
-
- Start a feature/bugfix branch
|
281
|
+
|
282
|
+
- [Fork](https://help.github.com/articles/fork-a-repo) the [notifier on github](https://github.com/bugsnag/bugsnag-ruby)
|
220
283
|
- Commit and push until you are happy with your contribution
|
284
|
+
- [Make a pull request](https://help.github.com/articles/using-pull-requests)
|
221
285
|
- Thanks!
|
222
286
|
|
223
287
|
|
224
288
|
License
|
225
289
|
-------
|
226
290
|
|
227
|
-
The Bugsnag ruby notifier is released under the
|
228
|
-
|
229
|
-
|
230
|
-
<http://www.apache.org/licenses/LICENSE-2.0>
|
291
|
+
The Bugsnag ruby notifier is free software released under the MIT License.
|
292
|
+
See [LICENSE.txt](https://github.com/bugsnag/bugsnag-ruby/blob/master/LICENSE.txt) for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.1
|
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.1.
|
8
|
+
s.version = "1.1.1"
|
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-07-17"
|
13
13
|
s.description = "Ruby notifier for bugsnag.com"
|
14
14
|
s.email = "james@bugsnag.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
"VERSION",
|
27
27
|
"bugsnag.gemspec",
|
28
28
|
"lib/bugsnag.rb",
|
29
|
+
"lib/bugsnag/capistrano.rb",
|
29
30
|
"lib/bugsnag/configuration.rb",
|
30
31
|
"lib/bugsnag/delay/resque.rb",
|
31
32
|
"lib/bugsnag/helpers.rb",
|
@@ -35,8 +36,10 @@ Gem::Specification.new do |s|
|
|
35
36
|
"lib/bugsnag/rails/action_controller_rescue.rb",
|
36
37
|
"lib/bugsnag/rails/controller_methods.rb",
|
37
38
|
"lib/bugsnag/railtie.rb",
|
39
|
+
"lib/bugsnag/tasks.rb",
|
38
40
|
"lib/bugsnag/version.rb",
|
39
41
|
"lib/resque/failure/bugsnag.rb",
|
42
|
+
"lib/tasks/bugsnag.rake",
|
40
43
|
"rails/init.rb",
|
41
44
|
"test/helper.rb",
|
42
45
|
"test/test_bugsnag.rb"
|
@@ -44,7 +47,7 @@ Gem::Specification.new do |s|
|
|
44
47
|
s.homepage = "http://github.com/bugsnag/bugsnag-ruby"
|
45
48
|
s.licenses = ["MIT"]
|
46
49
|
s.require_paths = ["lib"]
|
47
|
-
s.rubygems_version = "1.8.
|
50
|
+
s.rubygems_version = "1.8.24"
|
48
51
|
s.summary = "Ruby notifier for bugsnag.com"
|
49
52
|
|
50
53
|
if s.respond_to? :specification_version then
|
data/lib/bugsnag.rb
CHANGED
@@ -51,6 +51,15 @@ module Bugsnag
|
|
51
51
|
configuration.logger.info(LOG_PREFIX + message) if configuration.logger
|
52
52
|
end
|
53
53
|
|
54
|
+
# Warning logger
|
55
|
+
def warn(message)
|
56
|
+
if configuration.logger
|
57
|
+
configuration.logger.warn(LOG_PREFIX + message)
|
58
|
+
else
|
59
|
+
puts "#{LOG_PREFIX}#{message}"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
54
63
|
# Configuration getter
|
55
64
|
def configuration
|
56
65
|
@configuration ||= Bugsnag::Configuration.new
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require "httparty"
|
2
|
+
require "multi_json"
|
3
|
+
|
4
|
+
module Bugsnag
|
5
|
+
module Capistrano
|
6
|
+
ALLOWED_ENV_SETTINGS = %w{BUGSNAG_RELEASE_STAGE BUGSNAG_REPOSITORY BUGSNAG_REVISION BUGSNAG_BRANCH BUGSNAG_API_KEY BUGSNAG_APP_VERSION}
|
7
|
+
|
8
|
+
def self.load_into(configuration)
|
9
|
+
configuration.load do
|
10
|
+
after "deploy", "bugsnag:deploy"
|
11
|
+
after "deploy:migrations", "bugsnag:deploy"
|
12
|
+
|
13
|
+
namespace :bugsnag do
|
14
|
+
desc "Notify Bugsnag that new production code has been deployed"
|
15
|
+
task :deploy, :except => { :no_release => true }, :on_error => :continue do
|
16
|
+
# Build the rake command
|
17
|
+
rake = fetch(:rake, "rake")
|
18
|
+
rails_env = fetch(:rails_env, "production")
|
19
|
+
rake_command = "cd '#{current_path}' && #{rake} bugsnag:deploy RAILS_ENV=#{rails_env}"
|
20
|
+
|
21
|
+
# Build the new environment to pass through to rake
|
22
|
+
new_env = {
|
23
|
+
"BUGSNAG_RELEASE_STAGE" => rails_env,
|
24
|
+
"BUGSNAG_REVISION" => fetch(:current_revision, nil),
|
25
|
+
"BUGSNAG_REPOSITORY" => fetch(:repository, nil),
|
26
|
+
"BUGSNAG_BRANCH" => fetch(:branch, nil)
|
27
|
+
}.reject {|k,v| v.nil? }
|
28
|
+
|
29
|
+
# Pass through any existing env variables
|
30
|
+
ALLOWED_ENV_SETTINGS.each { |opt| new_env[opt] = ENV[opt] if ENV[opt] }
|
31
|
+
|
32
|
+
# Append the env to the rake command
|
33
|
+
rake_command << " #{new_env.map{|k,v| "#{k}=#{v}"}.join(" ")}"
|
34
|
+
|
35
|
+
# Run the rake command (only on one server)
|
36
|
+
run(rake_command, :once => true)
|
37
|
+
|
38
|
+
logger.info "Bugsnag deploy notification complete."
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
Bugsnag::Capistrano.load_into(Capistrano::Configuration.instance) if Capistrano::Configuration.instance
|
47
|
+
|
@@ -1,6 +1,5 @@
|
|
1
1
|
module Bugsnag
|
2
2
|
class Configuration
|
3
|
-
# TODO:JS enforce notify_release_stages
|
4
3
|
OPTIONS = [
|
5
4
|
:api_key, :release_stage, :notify_release_stages, :auto_notify,
|
6
5
|
:use_ssl, :project_root, :app_version,
|
@@ -39,7 +38,8 @@ module Bugsnag
|
|
39
38
|
"ActionController::InvalidAuthenticityToken",
|
40
39
|
"CGI::Session::CookieStore::TamperedWithCookie",
|
41
40
|
"ActionController::UnknownAction",
|
42
|
-
"AbstractController::ActionNotFound"
|
41
|
+
"AbstractController::ActionNotFound",
|
42
|
+
"Mongoid::Errors::DocumentNotFound"
|
43
43
|
]
|
44
44
|
|
45
45
|
|
data/lib/bugsnag/helpers.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
module Bugsnag
|
2
2
|
module Helpers
|
3
|
+
MAX_STRING_LENGTH = 1024
|
4
|
+
|
3
5
|
def self.cleanup_hash(hash)
|
4
6
|
return nil unless hash
|
5
7
|
hash.inject({}) do |h, (k, v)|
|
6
|
-
h[k.to_s.gsub(/\./, "-")] = v.to_s
|
8
|
+
h[k.to_s.gsub(/\./, "-")] = v.to_s.slice(0, MAX_STRING_LENGTH)
|
7
9
|
h
|
8
10
|
end
|
9
11
|
end
|
data/lib/bugsnag/notification.rb
CHANGED
@@ -58,6 +58,11 @@ module Bugsnag
|
|
58
58
|
def deliver
|
59
59
|
return unless self.notify_release_stages.include?(self.release_stage)
|
60
60
|
|
61
|
+
unless self.api_key
|
62
|
+
Bugsnag.warn "No API key configured, couldn't notify"
|
63
|
+
return
|
64
|
+
end
|
65
|
+
|
61
66
|
endpoint = (self.use_ssl ? "https://" : "http://") + (self.endpoint || DEFAULT_ENDPOINT)
|
62
67
|
|
63
68
|
Bugsnag.log("Notifying #{endpoint} of exception")
|
@@ -65,7 +70,7 @@ module Bugsnag
|
|
65
70
|
payload = {
|
66
71
|
:apiKey => self.api_key,
|
67
72
|
:notifier => notifier_identification,
|
68
|
-
:
|
73
|
+
:events => [{
|
69
74
|
:userId => self.user_id,
|
70
75
|
:appVersion => self.app_version,
|
71
76
|
:releaseStage => self.release_stage,
|
@@ -75,7 +80,7 @@ module Bugsnag
|
|
75
80
|
}.reject {|k,v| v.nil? }]
|
76
81
|
}
|
77
82
|
|
78
|
-
self.class.deliver_exception_payload(endpoint, MultiJson.
|
83
|
+
self.class.deliver_exception_payload(endpoint, MultiJson.dump(payload))
|
79
84
|
end
|
80
85
|
|
81
86
|
def ignore?
|
data/lib/bugsnag/rack.rb
CHANGED
@@ -2,6 +2,18 @@ module Bugsnag
|
|
2
2
|
class Rack
|
3
3
|
def initialize(app)
|
4
4
|
@app = app
|
5
|
+
if Bugsnag.configuration.project_root.nil? || Bugsnag.configuration.project_root.empty?
|
6
|
+
if defined?(settings)
|
7
|
+
Bugsnag.configuration.project_root = settings.root
|
8
|
+
else
|
9
|
+
caller.each do |c|
|
10
|
+
if c =~ /[\/\\]config.ru$/
|
11
|
+
Bugsnag.configuration.project_root = File.dirname(c.split(":").first)
|
12
|
+
break
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
5
17
|
end
|
6
18
|
|
7
19
|
def call(env)
|
data/lib/bugsnag/railtie.rb
CHANGED
@@ -6,7 +6,7 @@ require "rails"
|
|
6
6
|
module Bugsnag
|
7
7
|
class Railtie < Rails::Railtie
|
8
8
|
rake_tasks do
|
9
|
-
|
9
|
+
load "tasks/bugsnag.rake"
|
10
10
|
end
|
11
11
|
|
12
12
|
initializer "bugsnag.use_rack_middleware" do |app|
|
@@ -15,11 +15,11 @@ module Bugsnag
|
|
15
15
|
|
16
16
|
config.after_initialize do
|
17
17
|
Bugsnag.configure do |config|
|
18
|
-
config.release_stage = Rails.env
|
19
|
-
config.project_root = Rails.root
|
18
|
+
config.release_stage = ::Rails.env
|
19
|
+
config.project_root = ::Rails.root
|
20
20
|
config.framework = "Rails: #{::Rails::VERSION::STRING}"
|
21
21
|
|
22
|
-
config.logger ||= Rails.logger
|
22
|
+
config.logger ||= ::Rails.logger
|
23
23
|
end
|
24
24
|
|
25
25
|
if defined?(::ActionController::Base)
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "bugsnag"
|
2
|
+
require "httparty"
|
3
|
+
require "multi_json"
|
4
|
+
|
5
|
+
namespace :bugsnag do
|
6
|
+
desc "Notify Bugsnag of a new deploy."
|
7
|
+
task :deploy => :load do
|
8
|
+
# Fetch and check the api key
|
9
|
+
api_key = ENV["BUGSNAG_API_KEY"] || Bugsnag.configuration.api_key
|
10
|
+
raise RuntimeError.new("No API key found when notifying deploy") if !api_key || api_key.empty?
|
11
|
+
|
12
|
+
# Build the deploy payload
|
13
|
+
payload = {
|
14
|
+
:apiKey => api_key,
|
15
|
+
:releaseStage => ENV["BUGSNAG_RELEASE_STAGE"] || Bugsnag.configuration.release_stage
|
16
|
+
}
|
17
|
+
payload[:appVersion] = ENV["BUGSNAG_APP_VERSION"] if ENV["BUGSNAG_APP_VERSION"]
|
18
|
+
payload[:revision] = ENV["BUGSNAG_REVISION"] if ENV["BUGSNAG_REVISION"]
|
19
|
+
payload[:repository] = ENV["BUGSNAG_REPOSITORY"] if ENV["BUGSNAG_REPOSITORY"]
|
20
|
+
payload[:branch] = ENV["BUGSNAG_BRANCH"] if ENV["BUGSNAG_BRANCH"]
|
21
|
+
|
22
|
+
# Post the deploy notification
|
23
|
+
begin
|
24
|
+
endpoint = (Bugsnag.configuration.use_ssl ? "https://" : "http://") \
|
25
|
+
+ (Bugsnag.configuration.endpoint || Bugsnag::Notification::DEFAULT_ENDPOINT) \
|
26
|
+
+ "/deploy"
|
27
|
+
|
28
|
+
HTTParty.post(endpoint, {
|
29
|
+
:body => MultiJson.dump(payload),
|
30
|
+
:headers => {"Content-Type" => "application/json"}
|
31
|
+
})
|
32
|
+
rescue Exception => e
|
33
|
+
Bugsnag.log("Deploy notification failed, #{e.inspect}")
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
desc "Send a test exception to Bugsnag."
|
38
|
+
task :test_exception => :load do
|
39
|
+
begin
|
40
|
+
raise RuntimeError.new("Bugsnag test exception")
|
41
|
+
rescue => e
|
42
|
+
Bugsnag.notify(e, {:context => "rake#test_exception"})
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
task :load do
|
48
|
+
begin
|
49
|
+
Rake::Task["environment"].invoke
|
50
|
+
rescue
|
51
|
+
end
|
52
|
+
end
|
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: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 1
|
10
|
+
version: 1.1.1
|
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-07-17 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
21
|
+
requirement: &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
|
-
|
30
|
+
prerelease: false
|
32
31
|
type: :runtime
|
33
32
|
name: multi_json
|
33
|
+
version_requirements: *id001
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
|
-
|
36
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
35
|
+
requirement: &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
|
-
|
44
|
+
prerelease: false
|
46
45
|
type: :runtime
|
47
46
|
name: httparty
|
47
|
+
version_requirements: *id002
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
-
|
50
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
49
|
+
requirement: &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
|
-
|
58
|
+
prerelease: false
|
60
59
|
type: :development
|
61
60
|
name: shoulda
|
61
|
+
version_requirements: *id003
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
|
64
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
63
|
+
requirement: &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
|
-
|
74
|
+
prerelease: false
|
76
75
|
type: :development
|
77
76
|
name: bundler
|
77
|
+
version_requirements: *id004
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
|
80
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
79
|
+
requirement: &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
|
-
|
90
|
+
prerelease: false
|
92
91
|
type: :development
|
93
92
|
name: jeweler
|
93
|
+
version_requirements: *id005
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
|
96
|
-
version_requirements: &id006 !ruby/object:Gem::Requirement
|
95
|
+
requirement: &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
|
-
|
104
|
+
prerelease: false
|
106
105
|
type: :development
|
107
106
|
name: rcov
|
107
|
+
version_requirements: *id006
|
108
108
|
description: Ruby notifier for bugsnag.com
|
109
109
|
email: james@bugsnag.com
|
110
110
|
executables: []
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- VERSION
|
125
125
|
- bugsnag.gemspec
|
126
126
|
- lib/bugsnag.rb
|
127
|
+
- lib/bugsnag/capistrano.rb
|
127
128
|
- lib/bugsnag/configuration.rb
|
128
129
|
- lib/bugsnag/delay/resque.rb
|
129
130
|
- lib/bugsnag/helpers.rb
|
@@ -133,8 +134,10 @@ files:
|
|
133
134
|
- lib/bugsnag/rails/action_controller_rescue.rb
|
134
135
|
- lib/bugsnag/rails/controller_methods.rb
|
135
136
|
- lib/bugsnag/railtie.rb
|
137
|
+
- lib/bugsnag/tasks.rb
|
136
138
|
- lib/bugsnag/version.rb
|
137
139
|
- lib/resque/failure/bugsnag.rb
|
140
|
+
- lib/tasks/bugsnag.rake
|
138
141
|
- rails/init.rb
|
139
142
|
- test/helper.rb
|
140
143
|
- test/test_bugsnag.rb
|
@@ -167,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
170
|
requirements: []
|
168
171
|
|
169
172
|
rubyforge_project:
|
170
|
-
rubygems_version: 1.8.
|
173
|
+
rubygems_version: 1.8.24
|
171
174
|
signing_key:
|
172
175
|
specification_version: 3
|
173
176
|
summary: Ruby notifier for bugsnag.com
|