delayed-plugins-airbrake 1.0.0.beta.1

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,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in delayed-plugins-airbrake.gemspec
4
+ gemspec
@@ -0,0 +1,7 @@
1
+ Originally published as https://gist.github.com/granth/2223758, and later modified and posted under http://stackoverflow.com/questions/12683364/how-to-make-delayed-job-notify-airbrake-when-an-actionmailer-runs-into-an-error.
2
+
3
+ The original did not specify a license, but the StackOverflow version is implicitly CC BY-SA 3.0. As this gem is just packaging up that work, it is presumed to be the following license:
4
+
5
+ Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
6
+
7
+ For more information, please see http://creativecommons.org/licenses/by-sa/3.0/
@@ -0,0 +1,28 @@
1
+ # Delayed::Plugins::Airbrake
2
+
3
+ `delayed_job` exception notification with Airbrake
4
+
5
+ Originally based on [this gist](https://gist.github.com/granth/2223758) and [this StackOverflow answer](http://stackoverflow.com/questions/12683364/how-to-make-delayed-job-notify-airbrake-when-an-actionmailer-runs-into-an-error).
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ gem 'delayed-plugins-airbrake'
12
+
13
+ ## Usage
14
+
15
+ Register the plugin like so:
16
+
17
+ require 'delayed/plugins/airbrake'
18
+ Delayed::Worker.plugins << Delayed::Plugins::Airbrake
19
+
20
+ In a Rails project, this can be done in `config/initializers`.
21
+
22
+ ## Contributing
23
+
24
+ 1. Fork it
25
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
26
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
27
+ 4. Push to the branch (`git push origin my-new-feature`)
28
+ 5. Create new Pull Request
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'delayed-plugins-airbrake/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "delayed-plugins-airbrake"
8
+ gem.version = Delayed::Plugins::Airbrake::VERSION
9
+ gem.authors = ['Benjamin Oakes', 'Romain Champourlier', 'Grant Hollingworth']
10
+ gem.email = ['hello@benjaminoakes.com']
11
+ gem.description = %q(delayed_job exception notification with airbrake)
12
+ gem.summary = %q(Notify Airbrake on Delayed Job errors, including those on PerformableMethod. Packaged for use from https://gist.github.com/granth/2223758 and http://stackoverflow.com/questions/12683364/how-to-make-delayed-job-notify-airbrake-when-an-actionmailer-runs-into-an-error.)
13
+ gem.homepage = ""
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ # Dependencies are not using versions so that there are few version conflicts for users.
21
+ gem.add_dependency('airbrake')
22
+ gem.add_dependency('delayed_job')
23
+ end
@@ -0,0 +1,32 @@
1
+ require 'airbrake'
2
+ require 'delayed/performable_method'
3
+ require 'delayed/plugin'
4
+
5
+ require 'delayed-plugins-airbrake/version'
6
+
7
+ module Delayed
8
+ module Plugins
9
+ class Airbrake < Plugin
10
+ module Notify
11
+ def error(job, error)
12
+ ::Airbrake.notify_or_ignore(
13
+ :error_class => error.class.name,
14
+ :error_message => "#{error.class.name}: #{error.message}",
15
+ :parameters => {
16
+ :failed_job => job.inspect,
17
+ }
18
+ )
19
+ super if defined?(super)
20
+ end
21
+ end
22
+
23
+ callbacks do |lifecycle|
24
+ lifecycle.before(:invoke_job) do |job|
25
+ payload = job.payload_object
26
+ payload = payload.object if payload.is_a? Delayed::PerformableMethod
27
+ payload.extend Notify
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,7 @@
1
+ module Delayed
2
+ module Plugins
3
+ module Airbrake
4
+ VERSION = "1.0.0.beta.1"
5
+ end
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: delayed-plugins-airbrake
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.beta.1
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Benjamin Oakes
9
+ - Romain Champourlier
10
+ - Grant Hollingworth
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2013-03-15 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: airbrake
18
+ requirement: &12117500 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: '0'
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: *12117500
27
+ - !ruby/object:Gem::Dependency
28
+ name: delayed_job
29
+ requirement: &12116800 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: *12116800
38
+ description: delayed_job exception notification with airbrake
39
+ email:
40
+ - hello@benjaminoakes.com
41
+ executables: []
42
+ extensions: []
43
+ extra_rdoc_files: []
44
+ files:
45
+ - .gitignore
46
+ - Gemfile
47
+ - LICENSE.txt
48
+ - README.md
49
+ - Rakefile
50
+ - delayed-plugins-airbrake.gemspec
51
+ - lib/delayed-plugins-airbrake.rb
52
+ - lib/delayed-plugins-airbrake/version.rb
53
+ homepage: ''
54
+ licenses: []
55
+ post_install_message:
56
+ rdoc_options: []
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>'
69
+ - !ruby/object:Gem::Version
70
+ version: 1.3.1
71
+ requirements: []
72
+ rubyforge_project:
73
+ rubygems_version: 1.8.11
74
+ signing_key:
75
+ specification_version: 3
76
+ summary: Notify Airbrake on Delayed Job errors, including those on PerformableMethod. Packaged
77
+ for use from https://gist.github.com/granth/2223758 and http://stackoverflow.com/questions/12683364/how-to-make-delayed-job-notify-airbrake-when-an-actionmailer-runs-into-an-error.
78
+ test_files: []
79
+ has_rdoc: