delayed-plugins-raven 1.0.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.
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