buffered_job 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 +3 -3
- data/VERSION +1 -1
- data/buffered_job.gemspec +2 -1
- data/lib/buffered_job/ext.rb +0 -21
- data/lib/buffered_job/proxy.rb +21 -0
- data/lib/buffered_job.rb +1 -0
- data/spec/buffered_job_spec.rb +1 -0
- metadata +21 -20
data/README.md
CHANGED
@@ -9,11 +9,11 @@ a buffer.
|
|
9
9
|
|
10
10
|
## Scenario
|
11
11
|
|
12
|
-
Supposing that you are running sort of social media that has user articles which
|
12
|
+
Supposing that you are running sort of social media that has user articles which accept comments on each.
|
13
13
|
You'll probably want to have email notification for incomming comments on a article.
|
14
|
-
If you implement straightforward, the auther of popular article would receive tons of email for
|
14
|
+
If you implement straightforward, the auther of popular article would receive tons of email for an article.
|
15
15
|
That must be bothering. To avoid sending too many mails to a receipient, you can merge multiple
|
16
|
-
notificaiton messages into
|
16
|
+
notificaiton messages into an array and process it with another specific method.
|
17
17
|
|
18
18
|
That mean, if a user gets a comment notification for her blog article as follows:
|
19
19
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.2
|
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.2"
|
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"]
|
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
|
|
30
30
|
"lib/buffered_job.rb",
|
31
31
|
"lib/buffered_job/ext.rb",
|
32
32
|
"lib/buffered_job/main.rb",
|
33
|
+
"lib/buffered_job/proxy.rb",
|
33
34
|
"lib/generators/buffered_job/buffered_job_generator.rb",
|
34
35
|
"lib/generators/buffered_job/templates/migration.rb",
|
35
36
|
"spec/buffered_job_spec.rb",
|
data/lib/buffered_job/ext.rb
CHANGED
@@ -1,25 +1,4 @@
|
|
1
|
-
|
2
1
|
class BufferedJob
|
3
|
-
class Proxy
|
4
|
-
def initialize(receiver,user,opt={})
|
5
|
-
@receiver = receiver
|
6
|
-
@user = user
|
7
|
-
@opt = opt
|
8
|
-
end
|
9
|
-
|
10
|
-
def method_missing(method,target)
|
11
|
-
cat = @opt[:category]
|
12
|
-
cat ||= ( @receiver.class == Class ? @receiver.to_s : @receiver.class.to_s) + '#' + method.to_s
|
13
|
-
merge_method = @opt[:action] || "merge_#{method}".to_sym
|
14
|
-
BufferedJob.buf(:user_id => @user.id,
|
15
|
-
:category => cat,
|
16
|
-
:receiver => @receiver,
|
17
|
-
:method => method.to_sym,
|
18
|
-
:merge_method => merge_method,
|
19
|
-
:target => target)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
2
|
module Ext
|
24
3
|
def buffer_for(user,opt={})
|
25
4
|
Proxy.new(self,user,opt)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class BufferedJob
|
2
|
+
class Proxy
|
3
|
+
def initialize(receiver,user,opt={})
|
4
|
+
@receiver = receiver
|
5
|
+
@user = user
|
6
|
+
@opt = opt
|
7
|
+
end
|
8
|
+
|
9
|
+
def method_missing(method,target)
|
10
|
+
cat = @opt[:category]
|
11
|
+
cat ||= ( @receiver.class == Class ? @receiver.to_s : @receiver.class.to_s) + '#' + method.to_s
|
12
|
+
merge_method = @opt[:action] || "merge_#{method}".to_sym
|
13
|
+
BufferedJob.buf(:user_id => @user.id,
|
14
|
+
:category => cat,
|
15
|
+
:receiver => @receiver,
|
16
|
+
:method => method.to_sym,
|
17
|
+
:merge_method => merge_method,
|
18
|
+
:target => target)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/buffered_job.rb
CHANGED
data/spec/buffered_job_spec.rb
CHANGED
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.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-06-04 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &2153174100 !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: *2153174100
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: delayed_job_active_record
|
27
|
-
requirement: &
|
27
|
+
requirement: &2153164920 !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: *2153164920
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: actionmailer
|
38
|
-
requirement: &
|
38
|
+
requirement: &2153161780 !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: *2153161780
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &2153159820 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.8.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2153159820
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rdoc
|
60
|
-
requirement: &
|
60
|
+
requirement: &2153150140 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '3.12'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2153150140
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
|
-
requirement: &
|
71
|
+
requirement: &2153147740 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2153147740
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: jeweler
|
82
|
-
requirement: &
|
82
|
+
requirement: &2153143940 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 1.8.3
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2153143940
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: simplecov
|
93
|
-
requirement: &
|
93
|
+
requirement: &2153137560 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2153137560
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: sqlite3
|
104
|
-
requirement: &
|
104
|
+
requirement: &2153136000 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2153136000
|
113
113
|
description: Buffering jobs for a certain period and invoke specific method if two
|
114
114
|
or more similer jobs in a buffer.
|
115
115
|
email: masaki.sw@gmail.com
|
@@ -132,6 +132,7 @@ files:
|
|
132
132
|
- lib/buffered_job.rb
|
133
133
|
- lib/buffered_job/ext.rb
|
134
134
|
- lib/buffered_job/main.rb
|
135
|
+
- lib/buffered_job/proxy.rb
|
135
136
|
- lib/generators/buffered_job/buffered_job_generator.rb
|
136
137
|
- lib/generators/buffered_job/templates/migration.rb
|
137
138
|
- spec/buffered_job_spec.rb
|
@@ -152,7 +153,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
153
|
version: '0'
|
153
154
|
segments:
|
154
155
|
- 0
|
155
|
-
hash: -
|
156
|
+
hash: -3678512095132722771
|
156
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
158
|
none: false
|
158
159
|
requirements:
|