resque-failed-job-mailer 0.0.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.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ .idea/*
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.2
4
+ - 1.9.3
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in resque_failed_job_mailer.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'bundler'
2
+ require 'rspec/core/rake_task'
3
+
4
+ Bundler::GemHelper.install_tasks
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task :default => :spec
@@ -0,0 +1,22 @@
1
+ require "resque_failed_job_mailer/version"
2
+ require 'resque/server'
3
+ require 'resque/failure/multiple'
4
+ require 'resque/failure/redis'
5
+ require 'action_mailer'
6
+ require 'resque_failed_job_mailer/mailer'
7
+ require 'resque_failed_job_mailer/resque/failure/notifier'
8
+
9
+ Resque::Failure::Multiple.configure do |config|
10
+ config.classes = [Resque::Failure::Redis, Resque::Failure::Notifier]
11
+ end
12
+
13
+ Resque::Failure::Notifier.configure do |config|
14
+ config.mailer = ResqueFailedJobMailer::Mailer
15
+ config.mail = :alert
16
+ config.from = "no_reply@gmail.com"
17
+ config.to = "dummy@dummy.com"
18
+ end
19
+
20
+ module ResqueFailedJobMailer
21
+
22
+ end
@@ -0,0 +1,13 @@
1
+ <p>
2
+ <strong>Worker: </strong>
3
+ <%= @notifier.worker %>
4
+ </p>
5
+ <strong> Exception: </strong>
6
+ <p>
7
+ <%= @notifier.exception %>
8
+ <br/>
9
+ <% @notifier.exception.backtrace.each do |t| %>
10
+ <%= t %>
11
+ <br/>
12
+ <% end %>
13
+ </p>
@@ -0,0 +1,11 @@
1
+ module ResqueFailedJobMailer
2
+ class Mailer < ::ActionMailer::Base
3
+ def alert notifier
4
+ @notifier = notifier
5
+ text = ERB.new(File.read(File.dirname(__FILE__) + "/alert.html.erb")).result(binding)
6
+ mail :from => Resque::Failure::Notifier.from, :to => Resque::Failure::Notifier.to, :subject => "[Resque] #{@notifier.exception}" do |format|
7
+ format.html { render :text => text }
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ require 'action_mailer'
2
+
3
+ module Resque
4
+ module Failure
5
+ class Notifier < Base
6
+ class << self
7
+ attr_accessor :mailer, :mail, :from, :to
8
+
9
+ def configure
10
+ yield self
11
+ Resque::Failure.backend = self unless Resque::Failure.backend == Resque::Failure::Multiple
12
+ end
13
+ end
14
+
15
+ def save
16
+ self.class.mailer.send(self.class.mail, self).deliver
17
+ rescue
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,3 @@
1
+ module ResqueFailedJobMailer
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "resque_failed_job_mailer/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "resque-failed-job-mailer"
7
+ s.version = ResqueFailedJobMailer::VERSION
8
+ s.authors = ["Anand Agrawal", "Rajashree Malvade"]
9
+ s.email = ["aagrawal@thoughtworks.com", "rajashreermalvade@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Gem that sends mail in case of resque job failure}
12
+ s.description = %q{Gem that sends mail in case of resque job failure}
13
+
14
+ s.rubyforge_project = "resque-failed-job-mailer"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_development_dependency "rake"
22
+ s.add_development_dependency "rspec"
23
+ s.add_development_dependency "actionmailer"
24
+ s.add_development_dependency "resque"
25
+ end
@@ -0,0 +1,48 @@
1
+ require 'resque/server'
2
+ require 'resque/failure/multiple'
3
+ require 'resque/failure/redis'
4
+ require 'action_mailer'
5
+ require 'resque_failed_job_mailer/mailer'
6
+ require 'resque_failed_job_mailer/resque/failure/notifier'
7
+
8
+ describe Resque::Failure::Notifier do
9
+
10
+ describe "configure" do
11
+ Resque::Failure::Notifier.configure do |config|
12
+ config.mailer = ResqueFailedJobMailer::Mailer
13
+ config.mail = :alert
14
+ config.from = "no_reply@gmail.com"
15
+ config.to = "dummy@dummy.com"
16
+ end
17
+
18
+ it "should return mailer class" do
19
+ Resque::Failure::Notifier.mailer.should == ResqueFailedJobMailer::Mailer
20
+ end
21
+
22
+ it "should return mail method" do
23
+ Resque::Failure::Notifier.mail.should == :alert
24
+ end
25
+
26
+ it "should return sender address" do
27
+ Resque::Failure::Notifier.from.should == "no_reply@gmail.com"
28
+ end
29
+
30
+ it "should return recipient address" do
31
+ Resque::Failure::Notifier.to.should == "dummy@dummy.com"
32
+ end
33
+ end
34
+
35
+ describe "save" do
36
+ Resque::Failure::Notifier.configure do |config|
37
+ config.mailer = ResqueFailedJobMailer::Mailer
38
+ config.mail = :alert
39
+ end
40
+
41
+ it "should send the mail if job fails" do
42
+ notifier = Resque::Failure::Notifier.new(nil, nil, nil, nil)
43
+ ResqueFailedJobMailer::Mailer.should_receive(:alert).with(notifier).and_return(mail = mock('mail'))
44
+ mail.should_receive(:deliver)
45
+ notifier.save
46
+ end
47
+ end
48
+ end
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: resque-failed-job-mailer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Anand Agrawal
9
+ - Rajashree Malvade
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-07-25 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ requirement: &70324705718000 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: *70324705718000
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ requirement: &70324705717380 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *70324705717380
37
+ - !ruby/object:Gem::Dependency
38
+ name: actionmailer
39
+ requirement: &70324705716580 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *70324705716580
48
+ - !ruby/object:Gem::Dependency
49
+ name: resque
50
+ requirement: &70324705716140 !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: *70324705716140
59
+ description: Gem that sends mail in case of resque job failure
60
+ email:
61
+ - aagrawal@thoughtworks.com
62
+ - rajashreermalvade@gmail.com
63
+ executables: []
64
+ extensions: []
65
+ extra_rdoc_files: []
66
+ files:
67
+ - .gitignore
68
+ - .travis.yml
69
+ - Gemfile
70
+ - Rakefile
71
+ - lib/resque_failed_job_mailer.rb
72
+ - lib/resque_failed_job_mailer/alert.html.erb
73
+ - lib/resque_failed_job_mailer/mailer.rb
74
+ - lib/resque_failed_job_mailer/resque/failure/notifier.rb
75
+ - lib/resque_failed_job_mailer/version.rb
76
+ - resque_failed_job_mailer.gemspec
77
+ - spec/resque_failed_job_mailer_spec.rb
78
+ homepage: ''
79
+ licenses: []
80
+ post_install_message:
81
+ rdoc_options: []
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ segments:
91
+ - 0
92
+ hash: 994557905120790897
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ segments:
100
+ - 0
101
+ hash: 994557905120790897
102
+ requirements: []
103
+ rubyforge_project: resque-failed-job-mailer
104
+ rubygems_version: 1.8.12
105
+ signing_key:
106
+ specification_version: 3
107
+ summary: Gem that sends mail in case of resque job failure
108
+ test_files:
109
+ - spec/resque_failed_job_mailer_spec.rb