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.
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