acts_as_async 0.2.1 → 0.2.2
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/README.md +48 -38
- data/Rakefile +1 -1
- data/lib/acts_as_async/helper.rb +5 -0
- data/lib/acts_as_async/version.rb +1 -1
- metadata +12 -12
data/README.md
CHANGED
@@ -8,10 +8,12 @@ easy-to-use Resque helpers.
|
|
8
8
|
|
9
9
|
Installing ActsAsAsync is as simple as adding it to your Gemfile:
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
```
|
12
|
+
$ cat Gemfile
|
13
|
+
...
|
14
|
+
gem "acts_as_async"
|
15
|
+
...
|
16
|
+
```
|
15
17
|
|
16
18
|
|
17
19
|
## Usage
|
@@ -19,63 +21,71 @@ Installing ActsAsAsync is as simple as adding it to your Gemfile:
|
|
19
21
|
ActsAsAsync aims to be as simple as possible to use. Including it in your model
|
20
22
|
is as easy as:
|
21
23
|
|
22
|
-
|
23
|
-
|
24
|
-
|
24
|
+
```ruby
|
25
|
+
class Post < ActiveRecord::Base
|
26
|
+
acts_as_async
|
27
|
+
end
|
28
|
+
```
|
25
29
|
|
26
30
|
### Basic usage
|
27
31
|
|
28
32
|
ActsAsAsync adds three instance methods to your model that you can use to async
|
29
33
|
any other instance method:
|
30
34
|
|
31
|
-
|
35
|
+
```ruby
|
36
|
+
post = Post.create(:body => "Wow, acts_as_async is neat!")
|
32
37
|
|
33
|
-
|
34
|
-
|
38
|
+
# Self-destruct as soon as possible
|
39
|
+
post.async(:destroy)
|
35
40
|
|
36
|
-
|
37
|
-
|
41
|
+
# Self-destruct at this time tomorrow
|
42
|
+
post.async_at(Time.now + 1.day, :destroy)
|
38
43
|
|
39
|
-
|
40
|
-
|
44
|
+
# Self-destruct in 10 minutes
|
45
|
+
post.async_in(10.minutes, :destroy)
|
46
|
+
```
|
41
47
|
|
42
48
|
It also adds three identical class methods:
|
43
49
|
|
44
|
-
|
45
|
-
|
46
|
-
|
50
|
+
```ruby
|
51
|
+
Post.async(:destroy_all)
|
52
|
+
Post.async_at(1.day.from_now, :destroy_all)
|
53
|
+
Post.async_in(10.minutes, :destroy_all)
|
54
|
+
```
|
47
55
|
|
48
56
|
### Dynamic methods
|
49
57
|
|
50
58
|
In addition to the helper methods above, ActsAsAsync supports dynamic methods
|
51
59
|
for any existing method on your model. For example:
|
52
60
|
|
53
|
-
|
54
|
-
|
61
|
+
```ruby
|
62
|
+
class Audiobook < ActiveRecord::Base
|
63
|
+
acts_as_async
|
55
64
|
|
56
|
-
|
57
|
-
|
58
|
-
|
65
|
+
def transcribe
|
66
|
+
# Some long-running logic here
|
67
|
+
end
|
59
68
|
|
60
|
-
|
61
|
-
|
62
|
-
|
69
|
+
def read!
|
70
|
+
# Computers like to read too!
|
71
|
+
end
|
63
72
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
73
|
+
def paint(color)
|
74
|
+
# I don't know why you'd paint a book...
|
75
|
+
end
|
76
|
+
end
|
68
77
|
|
69
|
-
|
78
|
+
book = Audiobook.first
|
70
79
|
|
71
|
-
|
72
|
-
|
80
|
+
# Transcribe the book as soon as possible
|
81
|
+
book.async_transcribe
|
73
82
|
|
74
|
-
|
75
|
-
|
83
|
+
# Read the book at this time tomorrow
|
84
|
+
book.async_read_at!(Time.now + 1.day)
|
76
85
|
|
77
|
-
|
78
|
-
|
86
|
+
# Paint the book blue in a couple years
|
87
|
+
book.async_paint_in(2.years, "blue")
|
88
|
+
```
|
79
89
|
|
80
90
|
### Additional notes
|
81
91
|
|
@@ -105,8 +115,8 @@ pages.
|
|
105
115
|
|
106
116
|
## Compatibility
|
107
117
|
|
108
|
-
ActsAsAsync is tested against the
|
109
|
-
Rubinius 2.0, and JRuby.
|
118
|
+
ActsAsAsync is tested against the following Rubies: MRI 1.8.7, MRI 1.9.2,
|
119
|
+
MRI 1.9.3, Rubinius 2.0, and JRuby.
|
110
120
|
|
111
121
|

|
112
122
|
|
data/Rakefile
CHANGED
data/lib/acts_as_async/helper.rb
CHANGED
@@ -36,6 +36,11 @@ module ActsAsAsync
|
|
36
36
|
def async_in(time, method, *args)
|
37
37
|
Resque.enqueue_in(time, self, method, *args)
|
38
38
|
end
|
39
|
+
|
40
|
+
def inherited(subclass)
|
41
|
+
queue = instance_variable_get(:@queue)
|
42
|
+
subclass.instance_variable_set(:@queue, queue)
|
43
|
+
end
|
39
44
|
end
|
40
45
|
|
41
46
|
module InstanceMethods
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_async
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-11-04 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: resque
|
16
|
-
requirement: &
|
16
|
+
requirement: &70167909402680 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70167909402680
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: resque-scheduler
|
27
|
-
requirement: &
|
27
|
+
requirement: &70167909402080 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70167909402080
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &70167909401520 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70167909401520
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: activerecord
|
49
|
-
requirement: &
|
49
|
+
requirement: &70167909401020 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70167909401020
|
58
58
|
description: ActsAsAsync is an ActiveRecord extension that provides your models with
|
59
59
|
easy-to-use Resque helpers.
|
60
60
|
email:
|
@@ -85,7 +85,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
85
85
|
version: '0'
|
86
86
|
segments:
|
87
87
|
- 0
|
88
|
-
hash:
|
88
|
+
hash: 2610132422325218421
|
89
89
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
90
|
none: false
|
91
91
|
requirements:
|
@@ -94,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
94
|
version: '0'
|
95
95
|
segments:
|
96
96
|
- 0
|
97
|
-
hash:
|
97
|
+
hash: 2610132422325218421
|
98
98
|
requirements: []
|
99
99
|
rubyforge_project:
|
100
100
|
rubygems_version: 1.8.10
|