sub_pub 0.0.11 → 0.0.12
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 -1
- data/lib/sub_pub/active_record_extensions.rb +8 -0
- data/lib/sub_pub/version.rb +1 -1
- data/spec/integration/sub_pub_spec.rb +56 -0
- metadata +9 -7
- checksums.yaml +0 -7
data/README.md
CHANGED
@@ -10,6 +10,14 @@ module SubPub
|
|
10
10
|
end
|
11
11
|
"
|
12
12
|
end
|
13
|
+
|
14
|
+
[:create, :update, :destroy].each do |callback|
|
15
|
+
class_eval "
|
16
|
+
after_commit(on: callback) do
|
17
|
+
notify_pub_sub_of_active_record_callback('after_commit_on_#{callback.to_s}')
|
18
|
+
end
|
19
|
+
"
|
20
|
+
end
|
13
21
|
end
|
14
22
|
|
15
23
|
private
|
data/lib/sub_pub/version.rb
CHANGED
@@ -8,6 +8,7 @@ describe SubPub do
|
|
8
8
|
|
9
9
|
model do
|
10
10
|
has_many :fake_active_record_results
|
11
|
+
validate :title, presence: true
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
@@ -156,6 +157,61 @@ describe SubPub do
|
|
156
157
|
end
|
157
158
|
end
|
158
159
|
|
160
|
+
describe "after commit on create" do
|
161
|
+
before do
|
162
|
+
class FakeActiveRecordUserSubscriber < SubPub::ActiveRecord::Subscriber
|
163
|
+
subscribe_to(FakeActiveRecordUser, 'after_commit_on_create')
|
164
|
+
|
165
|
+
def on_publish
|
166
|
+
FakeActiveRecordResult.create
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
it "successfully calls through to the subscriber" do
|
172
|
+
FakeActiveRecordResult.all.size.should == 0
|
173
|
+
FakeActiveRecordUser.create
|
174
|
+
FakeActiveRecordResult.all.size.should == 1
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
describe "after commit on destroy" do
|
179
|
+
before do
|
180
|
+
class FakeActiveRecordUserSubscriber < SubPub::ActiveRecord::Subscriber
|
181
|
+
subscribe_to(FakeActiveRecordUser, 'after_commit_on_destroy')
|
182
|
+
|
183
|
+
def on_publish
|
184
|
+
FakeActiveRecordResult.create
|
185
|
+
end
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
it "successfully calls through to the subscriber" do
|
190
|
+
FakeActiveRecordResult.all.size.should == 0
|
191
|
+
FakeActiveRecordUser.create.destroy
|
192
|
+
FakeActiveRecordResult.all.size.should == 1
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
describe "after commit on update" do
|
197
|
+
before do
|
198
|
+
class FakeActiveRecordUserSubscriber < SubPub::ActiveRecord::Subscriber
|
199
|
+
subscribe_to(FakeActiveRecordUser, 'after_commit_on_update')
|
200
|
+
|
201
|
+
def on_publish
|
202
|
+
FakeActiveRecordResult.create
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
it "successfully calls through to the subscriber" do
|
208
|
+
FakeActiveRecordResult.all.size.should == 0
|
209
|
+
fake_user = FakeActiveRecordUser.create
|
210
|
+
fake_user.update_attributes(title: "ABC")
|
211
|
+
FakeActiveRecordResult.all.size.should == 1
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
159
215
|
describe "before create" do
|
160
216
|
before do
|
161
217
|
class FakeActiveRecordUserSubscriber < SubPub::ActiveRecord::Subscriber
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sub_pub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- zephyr-dev@googlegroups.com
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-05-01 00:00:00.000000000 Z
|
12
13
|
dependencies: []
|
13
14
|
description: In process publish/subscribe for Ruby
|
14
15
|
email:
|
@@ -51,26 +52,27 @@ files:
|
|
51
52
|
- sub_pub.gemspec
|
52
53
|
homepage: ''
|
53
54
|
licenses: []
|
54
|
-
metadata: {}
|
55
55
|
post_install_message:
|
56
56
|
rdoc_options: []
|
57
57
|
require_paths:
|
58
58
|
- lib
|
59
59
|
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
60
61
|
requirements:
|
61
|
-
- - '>='
|
62
|
+
- - ! '>='
|
62
63
|
- !ruby/object:Gem::Version
|
63
64
|
version: '0'
|
64
65
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
65
67
|
requirements:
|
66
|
-
- - '>='
|
68
|
+
- - ! '>='
|
67
69
|
- !ruby/object:Gem::Version
|
68
70
|
version: '0'
|
69
71
|
requirements: []
|
70
72
|
rubyforge_project:
|
71
|
-
rubygems_version:
|
73
|
+
rubygems_version: 1.8.24
|
72
74
|
signing_key:
|
73
|
-
specification_version:
|
75
|
+
specification_version: 3
|
74
76
|
summary: SubPub is a thin wrapper around ActiveSupport::Notifications, which provides
|
75
77
|
an implementation of the Publish/Subscribe pattern.
|
76
78
|
test_files:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 481a96767b0146b19366dfaa3742685627129bbe
|
4
|
-
data.tar.gz: 09fffe3067f8e999b3510c3a84f9935f568690ec
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 66d39dd8704aa5429b1c3caca2a73b05b75ffef5b727075e1be7830c9e6e749fc7b93b14a3c22cdfed4a89355148ac8d7aa63c2c577ae7835e0f724c65d86d15
|
7
|
-
data.tar.gz: 17252d836444d1ad870171354d93d02f44d8cd17b9627ca18b74d9773662e51bc7f602aceeab933bd5d19dae4c328cb09f3ca6159e3ea8bf1b1d1c46eca05353
|