dj_remixes 0.2.4 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ if Object.const_defined?(:Airbrake)
2
+ module DJ
3
+ class Worker
4
+
5
+ # Report Errors to Airbrake:
6
+ def error_with_airbrake(job, error)
7
+ Airbrake.notify_or_ignore(error, :cgi_data => self.dj_object.attributes)
8
+ error_without_airbrake(job, error)
9
+ end
10
+
11
+ alias_method_chain :error, :airbrake
12
+
13
+ end # Worker
14
+ end # DJ
15
+ end # defined?
@@ -8,6 +8,7 @@ require 'mark_facets'
8
8
  unique
9
9
  re_enqueue
10
10
  hoptoad
11
+ airbrake
11
12
  unique_validator
12
13
  }.each do |f|
13
14
  require File.expand_path(File.join(File.dirname(__FILE__), f))
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: dj_remixes
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.4
5
+ version: 0.3.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - markbates
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-14 00:00:00 -04:00
13
+ date: 2011-08-26 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -24,6 +24,17 @@ dependencies:
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: delayed_job
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - <
33
+ - !ruby/object:Gem::Version
34
+ version: 3.0.0
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: *id002
27
38
  description: "dj_remixes was developed by: markbates"
28
39
  email: mark@markbates.com
29
40
  executables: []
@@ -31,12 +42,12 @@ executables: []
31
42
  extensions: []
32
43
 
33
44
  extra_rdoc_files:
34
- - README
35
45
  - LICENSE
36
46
  files:
37
47
  - lib/dj_remixes/action_mailer/action_mailer.rb
38
48
  - lib/dj_remixes/action_mailer/action_mailer_railtie.rb
39
49
  - lib/dj_remixes/active_record_railtie.rb
50
+ - lib/dj_remixes/airbrake.rb
40
51
  - lib/dj_remixes/attributes.rb
41
52
  - lib/dj_remixes/callbacks.rb
42
53
  - lib/dj_remixes/dj_remixes.rb
@@ -49,7 +60,6 @@ files:
49
60
  - lib/dj_remixes/unique_validator.rb
50
61
  - lib/dj_remixes/worker.rb
51
62
  - lib/dj_remixes.rb
52
- - README
53
63
  - LICENSE
54
64
  has_rdoc: true
55
65
  homepage: http://www.metabates.com
@@ -65,7 +75,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
65
75
  requirements:
66
76
  - - ">="
67
77
  - !ruby/object:Gem::Version
68
- hash: -992275969709892340
78
+ hash: -989871746247076953
69
79
  segments:
70
80
  - 0
71
81
  version: "0"
@@ -74,9 +84,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
84
  requirements:
75
85
  - - ">="
76
86
  - !ruby/object:Gem::Version
77
- hash: -992275969709892340
78
- segments:
79
- - 0
80
87
  version: "0"
81
88
  requirements: []
82
89
 
data/README DELETED
@@ -1,131 +0,0 @@
1
- =DJ Remixes
2
-
3
- A boat load of incredibly useful 'plugins' for Delayed::Job! DJ is a wonderful project and is incredibly useful, however it can be even more useful with just a few extras added in.
4
-
5
- ==The Extras
6
-
7
- * A proper 'Worker' class: DJ::Worker that accepts attributes.
8
- * Callbacks
9
- * Hoptoad support, if using Hoptoad.
10
- * Priority settings
11
- * Automatic re-enqueueing
12
- * Better scheduling
13
- * Unique jobs.
14
- * more ...
15
-
16
- These are a few of the extras for DJ that are included here.
17
-
18
- ==Installation
19
-
20
- In your <code>Gemfile</code> add the following:
21
-
22
- gem "delayed_job", "2.1.4"
23
- gem "dj_remixes"
24
-
25
- Then install the gems:
26
-
27
- $ bundle install
28
-
29
- Create a migration to add the required dj_remixes fields to the delayed_job table:
30
-
31
- class AddDjRemixesColumns < ActiveRecord::Migration
32
- def self.up
33
- add_column :delayed_jobs, :worker_class_name, :string
34
- add_column :delayed_jobs, :started_at, :datetime
35
- add_column :delayed_jobs, :finished_at, :datetime
36
- end
37
-
38
- def self.down
39
- remove_column :delayed_jobs, :worker_class_name
40
- remove_column :delayed_jobs, :started_at
41
- remove_column :delayed_jobs, :finished_at
42
- end
43
- end
44
-
45
-
46
- ==Using
47
-
48
- ===Basic Worker
49
-
50
- class FooWorker < DJ::Worker
51
-
52
- def perform
53
- # do work
54
- end
55
-
56
- end
57
-
58
- FooWorker.enqueue
59
-
60
- ===Unique Worker
61
-
62
- Tell DJ to only allow one of this worker at a given time.
63
-
64
- # We only want to charge the card once!
65
- class PurchaseWorker < DJ::Worker
66
- is_unique
67
-
68
- def perform
69
- # charge the credit card...
70
- end
71
- end
72
-
73
- If the worker has an <code>id</code> attribute that then will be used in conjunction with the class name of the worker to form the unique key.
74
-
75
- ===Priority
76
-
77
- Tell DJ to run this worker with a higher priority than others.
78
-
79
- class FooWorker < DJ::Worker
80
- priority :high
81
-
82
- def perform
83
- # do work
84
- end
85
-
86
- end
87
-
88
- FooWorker.enqueue
89
-
90
- ===Re-Enqueueing
91
-
92
- Tell DJ to re-enqueue this worker after it has successfully completely. *NOTE*: This will actually create a new DJ object in the database, not reuse the same one.
93
-
94
- # Run every 30 days and charge a credit card.
95
- class SubscriptionWorker < DJ::Worker
96
- re_enqueue
97
-
98
- def run_at
99
- 30.days.from_now
100
- end
101
-
102
- def perform
103
- # charge the credit card...
104
- end
105
- end
106
-
107
- ===Attributes
108
-
109
- The <code>DJ::Worker</code> class can accept attributes, similar to the way an <code>ActiveRecord</code> model can.
110
-
111
- class FooWorker < DJ::Worker
112
- priority :high
113
-
114
- def perform
115
- # do work
116
- puts self.id # => 1
117
- puts self.person # => 'Mark Bates'
118
- end
119
-
120
- end
121
-
122
- worker = FooWorker.new(:id => 1, :person => 'Mark Bates')
123
- worker.enqueue!
124
-
125
- ==Contributors
126
-
127
- * Mark Bates
128
- * Stuart Garner
129
- * Brent Kirby
130
- * Luke Pearce
131
- * Lars Pindrake