buffered_job 0.2.0 → 0.2.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/.travis.yml +9 -0
- data/README.md +28 -8
- data/VERSION +1 -1
- data/buffered_job.gemspec +3 -2
- metadata +23 -67
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
# buffered_job
|
2
2
|
|
3
|
+
|
4
|
+
[](http://travis-ci.org/sawamur/buffered_job)
|
5
|
+
|
6
|
+
|
3
7
|
Buffering jobs for a certain period and invoke specific method if two or more similer jobs in
|
4
8
|
a buffer.
|
5
9
|
|
6
10
|
## Scenario
|
7
11
|
|
8
|
-
Supposing that you are running sort of social media that has user articles which
|
9
|
-
|
12
|
+
Supposing that you are running sort of social media that has user articles which have comments on each.
|
13
|
+
You'll probably want to have email notification for incomming comments on a article.
|
10
14
|
If you implement straightforward, the auther of popular article would receive tons of email for a article.
|
11
15
|
That must be bothering. To avoid sending too many mails to a receipient, you can merge multiple
|
12
16
|
notificaiton messages into one another method (in this casse that would be sending method) .
|
@@ -35,15 +39,21 @@ Then. With this module,you can buffer `notify` method
|
|
35
39
|
|
36
40
|
## Install
|
37
41
|
|
38
|
-
in Gemfile
|
39
42
|
|
40
43
|
```
|
41
|
-
gem
|
44
|
+
$ gem install buffered_job
|
45
|
+
```
|
46
|
+
|
47
|
+
or in Gemfile
|
48
|
+
|
49
|
+
```
|
50
|
+
gem 'buffered_job'
|
42
51
|
```
|
43
52
|
|
44
53
|
then, `bundle install`
|
45
54
|
|
46
55
|
|
56
|
+
|
47
57
|
## Peparation
|
48
58
|
|
49
59
|
```
|
@@ -60,12 +70,18 @@ applications. You have to run delayed_job worker.
|
|
60
70
|
|
61
71
|
## Usage
|
62
72
|
|
73
|
+
Every active_record object has `buffer` method. You can put it between receiver and method and bufferes method
|
74
|
+
along with argument object.
|
75
|
+
|
76
|
+
|
63
77
|
```
|
64
78
|
@user.buffer.post_to_twitter(@article1)
|
65
79
|
@user.buffer.post_to_twitter(@aritcle2)
|
66
80
|
```
|
67
|
-
|
68
|
-
|
81
|
+
|
82
|
+
When flushing buffer,if two methods above is detected, that would
|
83
|
+
invoke merge_{:original_method} method insted of original method on
|
84
|
+
that User model,so in this case, you must define `merge_post_to_twitter` in User model.
|
69
85
|
|
70
86
|
```
|
71
87
|
def merge_post_to_twitter(articles)
|
@@ -73,6 +89,10 @@ def merge_post_to_twitter(articles)
|
|
73
89
|
end
|
74
90
|
```
|
75
91
|
|
92
|
+
## Current Limitation
|
93
|
+
|
94
|
+
Only one argument object can be passed to buffered method.
|
95
|
+
|
76
96
|
|
77
97
|
## Configuration
|
78
98
|
|
@@ -85,6 +105,6 @@ BufferedJob.delay_time = 30.seconds
|
|
85
105
|
|
86
106
|
## Copyright
|
87
107
|
|
88
|
-
Copyright (c) 2012 Masaki Sawamura.
|
89
|
-
further details.
|
108
|
+
Copyright (c) 2012 Masaki Sawamura.
|
109
|
+
See LICENSE.txt for further details.
|
90
110
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/buffered_job.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "buffered_job"
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Masaki Sawamura"]
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
".rspec",
|
22
|
+
".travis.yml",
|
22
23
|
"Gemfile",
|
23
24
|
"Gemfile.lock",
|
24
25
|
"LICENSE.txt",
|
@@ -38,7 +39,7 @@ Gem::Specification.new do |s|
|
|
38
39
|
s.homepage = "http://github.com/sawamur/buffered_job"
|
39
40
|
s.licenses = ["MIT"]
|
40
41
|
s.require_paths = ["lib"]
|
41
|
-
s.rubygems_version = "1.8.
|
42
|
+
s.rubygems_version = "1.8.10"
|
42
43
|
s.summary = "buffering jobs to merge similer jobs"
|
43
44
|
|
44
45
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: buffered_job
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
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: 2012-06-04 00:00:00.
|
12
|
+
date: 2012-06-04 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &2153267200 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
24
|
+
version_requirements: *2153267200
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: delayed_job_active_record
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &2153266700 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ! '>='
|
@@ -37,15 +32,10 @@ dependencies:
|
|
37
32
|
version: '0'
|
38
33
|
type: :runtime
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
35
|
+
version_requirements: *2153266700
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: actionmailer
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &2153266200 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ! '>='
|
@@ -53,15 +43,10 @@ dependencies:
|
|
53
43
|
version: '0'
|
54
44
|
type: :runtime
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
46
|
+
version_requirements: *2153266200
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: rspec
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &2153258800 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
52
|
- - ~>
|
@@ -69,15 +54,10 @@ dependencies:
|
|
69
54
|
version: 2.8.0
|
70
55
|
type: :development
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 2.8.0
|
57
|
+
version_requirements: *2153258800
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
59
|
name: rdoc
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &2153258200 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
62
|
requirements:
|
83
63
|
- - ~>
|
@@ -85,15 +65,10 @@ dependencies:
|
|
85
65
|
version: '3.12'
|
86
66
|
type: :development
|
87
67
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '3.12'
|
68
|
+
version_requirements: *2153258200
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: bundler
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirement: &2153257620 !ruby/object:Gem::Requirement
|
97
72
|
none: false
|
98
73
|
requirements:
|
99
74
|
- - ! '>='
|
@@ -101,15 +76,10 @@ dependencies:
|
|
101
76
|
version: '0'
|
102
77
|
type: :development
|
103
78
|
prerelease: false
|
104
|
-
version_requirements:
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
79
|
+
version_requirements: *2153257620
|
110
80
|
- !ruby/object:Gem::Dependency
|
111
81
|
name: jeweler
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
+
requirement: &2153257020 !ruby/object:Gem::Requirement
|
113
83
|
none: false
|
114
84
|
requirements:
|
115
85
|
- - ~>
|
@@ -117,15 +87,10 @@ dependencies:
|
|
117
87
|
version: 1.8.3
|
118
88
|
type: :development
|
119
89
|
prerelease: false
|
120
|
-
version_requirements:
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 1.8.3
|
90
|
+
version_requirements: *2153257020
|
126
91
|
- !ruby/object:Gem::Dependency
|
127
92
|
name: simplecov
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirement: &2153256440 !ruby/object:Gem::Requirement
|
129
94
|
none: false
|
130
95
|
requirements:
|
131
96
|
- - ! '>='
|
@@ -133,15 +98,10 @@ dependencies:
|
|
133
98
|
version: '0'
|
134
99
|
type: :development
|
135
100
|
prerelease: false
|
136
|
-
version_requirements:
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ! '>='
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '0'
|
101
|
+
version_requirements: *2153256440
|
142
102
|
- !ruby/object:Gem::Dependency
|
143
103
|
name: sqlite3
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirement: &2153255860 !ruby/object:Gem::Requirement
|
145
105
|
none: false
|
146
106
|
requirements:
|
147
107
|
- - ! '>='
|
@@ -149,12 +109,7 @@ dependencies:
|
|
149
109
|
version: '0'
|
150
110
|
type: :development
|
151
111
|
prerelease: false
|
152
|
-
version_requirements:
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - ! '>='
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '0'
|
112
|
+
version_requirements: *2153255860
|
158
113
|
description: Buffering jobs for a certain period and invoke specific method if two
|
159
114
|
or more similer jobs in a buffer.
|
160
115
|
email: masaki.sw@gmail.com
|
@@ -166,6 +121,7 @@ extra_rdoc_files:
|
|
166
121
|
files:
|
167
122
|
- .document
|
168
123
|
- .rspec
|
124
|
+
- .travis.yml
|
169
125
|
- Gemfile
|
170
126
|
- Gemfile.lock
|
171
127
|
- LICENSE.txt
|
@@ -196,7 +152,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
196
152
|
version: '0'
|
197
153
|
segments:
|
198
154
|
- 0
|
199
|
-
hash: -
|
155
|
+
hash: -2613597482340444259
|
200
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
201
157
|
none: false
|
202
158
|
requirements:
|
@@ -205,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
205
161
|
version: '0'
|
206
162
|
requirements: []
|
207
163
|
rubyforge_project:
|
208
|
-
rubygems_version: 1.8.
|
164
|
+
rubygems_version: 1.8.10
|
209
165
|
signing_key:
|
210
166
|
specification_version: 3
|
211
167
|
summary: buffering jobs to merge similer jobs
|