delayed-plugins-raven 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .vagrant
6
+ .yardoc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
data/AUTHORS ADDED
@@ -0,0 +1,5 @@
1
+ In chronological order:
2
+
3
+ * Qiushi He
4
+ * Benjamin Oakes
5
+ * Bruno Miranda
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in delayed-plugins-raven.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,5 @@
1
+ Based on Ben Oakes's AirBrake plugin (https://github.com/benjaminoakes/delayed-plugins-airbrake) with samples provided by Bruno Miranda (https://gist.github.com/brupm/3c7056b03d62ba415015).
2
+
3
+ Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
4
+
5
+ For more information, please see http://creativecommons.org/licenses/by-sa/3.0/
data/README.md ADDED
@@ -0,0 +1,22 @@
1
+ # Delayed::Plugins::Raven
2
+
3
+ ![Looking for maintainer](https://raw.github.com/qiushihe/delayed-plugins-raven/master/resources/looking-for-maintainer.png)
4
+
5
+ DelayedJob exception notification with Sentry Raven
6
+
7
+ Based on Ben Oakes's AirBrake plugin (https://github.com/benjaminoakes/delayed-plugins-airbrake) with samples provided by Bruno Miranda (https://gist.github.com/brupm/3c7056b03d62ba415015).
8
+
9
+ ## Installation
10
+
11
+ Add this line to your application's Gemfile:
12
+
13
+ gem 'delayed-plugins-raven'
14
+
15
+ ## Usage
16
+
17
+ Register the plugin like so:
18
+
19
+ require 'delayed-plugins-raven'
20
+ Delayed::Worker.plugins << Delayed::Plugins::Raven::Plugin
21
+
22
+ In a Rails project, this can be done in `config/initializers`.
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake'
3
+ require 'rspec/core/rake_task'
4
+
5
+ task :default => :spec
6
+
7
+ Bundler::GemHelper.install_tasks
8
+ RSpec::Core::RakeTask.new(:spec)
9
+
10
+ task :console do
11
+ sh('irb -I lib -r delayed-plugins-raven')
12
+ end
@@ -0,0 +1,24 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'delayed-plugins-raven/version'
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "delayed-plugins-raven"
7
+ gem.version = Delayed::Plugins::Raven::VERSION
8
+ gem.authors = ['Qiushi He', 'Benjamin Oakes', 'Bruno Miranda']
9
+ gem.email = ['qiushihe@me.com']
10
+ gem.description = %q(delayed_job exception notification with raven)
11
+ gem.summary = %q(Notify Sentry Raven on Delayed Job errors, including those on PerformableMethod. Based on Ben Oakes's AirBrake plugin (https://github.com/benjaminoakes/delayed-plugins-airbrake) with samples provided by Bruno Miranda (https://gist.github.com/brupm/3c7056b03d62ba415015).)
12
+ gem.homepage = "https://github.com/qiushihe/delayed-plugins-raven"
13
+
14
+ gem.files = `git ls-files`.split($/)
15
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
+ gem.require_paths = ["lib"]
18
+
19
+ gem.add_dependency('sentry-raven')
20
+ gem.add_dependency('delayed_job')
21
+
22
+ gem.add_development_dependency('rake')
23
+ gem.add_development_dependency('rspec')
24
+ end
@@ -0,0 +1,31 @@
1
+ require 'raven'
2
+ require 'delayed/performable_method'
3
+ require 'delayed/plugin'
4
+
5
+ require 'delayed-plugins-raven/version'
6
+
7
+ module Delayed::Plugins::Raven
8
+ class Plugin < ::Delayed::Plugin
9
+ module Notify
10
+ def error(job, error)
11
+ begin
12
+ ::Raven.capture_exception(error, { extra: {
13
+ delayed_job: job.as_json
14
+ } })
15
+ rescue Exception => e
16
+ Rails.logger.error "Raven logging failed: #{e.class.name}: #{e.message}"
17
+ Rails.logger.flush
18
+ end
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
@@ -0,0 +1,7 @@
1
+ module Delayed
2
+ module Plugins
3
+ module Raven
4
+ VERSION = '1.0.0'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ require 'delayed-plugins-raven'
2
+
3
+ # Intentionally empty. This is basically just checking for SyntaxErrors, etc right now.
metadata ADDED
@@ -0,0 +1,125 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: delayed-plugins-raven
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Qiushi He
9
+ - Benjamin Oakes
10
+ - Bruno Miranda
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2013-10-01 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: sentry-raven
18
+ requirement: !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: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: '0'
32
+ - !ruby/object:Gem::Dependency
33
+ name: delayed_job
34
+ requirement: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: rake
50
+ requirement: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ - !ruby/object:Gem::Dependency
65
+ name: rspec
66
+ requirement: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ type: :development
73
+ prerelease: false
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ description: delayed_job exception notification with raven
81
+ email:
82
+ - qiushihe@me.com
83
+ executables: []
84
+ extensions: []
85
+ extra_rdoc_files: []
86
+ files:
87
+ - .gitignore
88
+ - AUTHORS
89
+ - Gemfile
90
+ - LICENSE.txt
91
+ - README.md
92
+ - Rakefile
93
+ - delayed-plugins-raven.gemspec
94
+ - lib/delayed-plugins-raven.rb
95
+ - lib/delayed-plugins-raven/version.rb
96
+ - resources/looking-for-maintainer.png
97
+ - spec/lib/delayed-plugins-raven/plugin_spec.rb
98
+ homepage: https://github.com/qiushihe/delayed-plugins-raven
99
+ licenses: []
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ! '>='
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ requirements: []
117
+ rubyforge_project:
118
+ rubygems_version: 1.8.23
119
+ signing_key:
120
+ specification_version: 3
121
+ summary: Notify Sentry Raven on Delayed Job errors, including those on PerformableMethod.
122
+ Based on Ben Oakes's AirBrake plugin (https://github.com/benjaminoakes/delayed-plugins-airbrake)
123
+ with samples provided by Bruno Miranda (https://gist.github.com/brupm/3c7056b03d62ba415015).
124
+ test_files:
125
+ - spec/lib/delayed-plugins-raven/plugin_spec.rb