buffered_job 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/.travis.yml +9 -0
  2. data/README.md +28 -8
  3. data/VERSION +1 -1
  4. data/buffered_job.gemspec +3 -2
  5. metadata +23 -67
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
6
+ # - jruby-18mode # JRuby in 1.8 mode
7
+ # - jruby-19mode # JRuby in 1.9 mode
8
+ - rbx-18mode
9
+ - rbx-19mode
data/README.md CHANGED
@@ -1,12 +1,16 @@
1
1
  # buffered_job
2
2
 
3
+
4
+ [![Build Status](https://secure.travis-ci.org/sawamur/buffered_job.png)](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 has comments from his/her
9
- friends. You probably want to have email notification for incomming comments on a article.
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 'buffered_job',:git => 'git://github.com/sawamur/buffered_job.git'
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
- invoke merge_* method in User model,so you must define
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. See LICENSE.txt for
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.0
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.0"
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.24"
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.0
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.000000000 Z
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: -4598416312079143167
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.24
164
+ rubygems_version: 1.8.10
209
165
  signing_key:
210
166
  specification_version: 3
211
167
  summary: buffering jobs to merge similer jobs