pusherable 1.2.2 → 1.2.3
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.
- checksums.yaml +4 -4
- data/Gemfile +0 -4
- data/lib/pusherable/version.rb +1 -1
- data/lib/pusherable.rb +28 -6
- data/spec/mongoid_pusherable_spec.rb +1 -1
- data/spec/sqlite_pusherable_spec.rb +9 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfb4424b0d18f8e9424047dad10498e4a25429d6
|
4
|
+
data.tar.gz: 54eff13e45b4f50a5c62fbbb8c6ff69f41c44822
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 487d350d8fb6115721bf1d23668d948f5a34f62eeebad2d0b949006aad2184d5755511b6e382ecc9457551c722660189b31ace59d6766db79b84cb7670b6a2e4
|
7
|
+
data.tar.gz: 50b79cb3ea0ccfee89d7473f191edc18a8410fb3d2fd2866445049ccec2c7541ae2f06f487541ec9e648c39bb9121846929f8b8afe318de4d239ef40893b6678
|
data/Gemfile
CHANGED
data/lib/pusherable/version.rb
CHANGED
data/lib/pusherable.rb
CHANGED
@@ -14,18 +14,34 @@ module Pusherable
|
|
14
14
|
raise "Please `gem install pusher` and configure it to run in your app!" if Pusher.app_id.blank? || Pusher.key.blank? || Pusher.secret.blank?
|
15
15
|
|
16
16
|
class_attribute :pusherable_channel
|
17
|
+
class_attribute :pusherable_triggers_active
|
17
18
|
|
18
19
|
self.pusherable_channel = pusherable_channel
|
20
|
+
self.pusherable_triggers_active = true
|
21
|
+
|
22
|
+
class << self
|
23
|
+
def pusherable_triggers?
|
24
|
+
pusherable_triggers_active
|
25
|
+
end
|
26
|
+
|
27
|
+
def activate_pusherable_triggers
|
28
|
+
self.pusherable_triggers_active = true
|
29
|
+
end
|
30
|
+
|
31
|
+
def deactivate_pusherable_triggers
|
32
|
+
self.pusherable_triggers_active = false
|
33
|
+
end
|
34
|
+
end
|
19
35
|
|
20
36
|
class_eval do
|
21
37
|
if defined?(Mongoid) && defined?(Mongoid::Document) && include?(Mongoid::Document)
|
22
|
-
after_create :pusherable_trigger_create
|
23
|
-
after_update :pusherable_trigger_update
|
24
|
-
before_destroy :pusherable_trigger_destroy
|
38
|
+
after_create :pusherable_trigger_create, if: :pusherable_triggers_active
|
39
|
+
after_update :pusherable_trigger_update, if: :pusherable_triggers_active
|
40
|
+
before_destroy :pusherable_trigger_destroy, if: :pusherable_triggers_active
|
25
41
|
else
|
26
|
-
after_commit :pusherable_trigger_create, on: :create
|
27
|
-
after_commit :pusherable_trigger_update, on: :update
|
28
|
-
after_commit :pusherable_trigger_destroy, on: :destroy
|
42
|
+
after_commit :pusherable_trigger_create, on: :create, if: :pusherable_triggers_active
|
43
|
+
after_commit :pusherable_trigger_update, on: :update, if: :pusherable_triggers_active
|
44
|
+
after_commit :pusherable_trigger_destroy, on: :destroy, if: :pusherable_triggers_active
|
29
45
|
end
|
30
46
|
|
31
47
|
def self.pusherable?
|
@@ -50,6 +66,12 @@ module Pusherable
|
|
50
66
|
self.class.pusherable_channel(self)
|
51
67
|
end
|
52
68
|
|
69
|
+
[:pusherable_triggers?, :activate_pusherable_triggers, :deactivate_pusherable_triggers].each do |method|
|
70
|
+
define_method method do
|
71
|
+
self.class.send method
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
53
75
|
private
|
54
76
|
|
55
77
|
def pusherable_class_name
|
@@ -25,7 +25,7 @@ describe Pusherable do
|
|
25
25
|
pusherable_model.should_receive(:pusherable_trigger_create).once
|
26
26
|
pusherable_model.save
|
27
27
|
pusherable_model.should_receive(:pusherable_trigger_update).once
|
28
|
-
pusherable_model.save
|
28
|
+
pusherable_model.save
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should trigger after update" do
|
@@ -9,11 +9,13 @@ describe Pusherable do
|
|
9
9
|
it "should make ActiveRecord models pusherable" do
|
10
10
|
expect(NonPusherableModel.pusherable?).to be_false
|
11
11
|
expect(PusherableModel.pusherable?).to be_true
|
12
|
+
expect(PusherableModel.pusherable_triggers?).to be_true
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
15
16
|
describe "callbacks" do
|
16
17
|
let(:pusherable_model) { PusherableModel.new }
|
18
|
+
let(:pusherable_model_without_triggers) { PusherableModel.new }
|
17
19
|
let(:non_pusherable_model) { NonPusherableModel.new }
|
18
20
|
|
19
21
|
it "should trigger after create" do
|
@@ -25,7 +27,7 @@ describe Pusherable do
|
|
25
27
|
pusherable_model.should_receive(:pusherable_trigger_create).once
|
26
28
|
pusherable_model.save
|
27
29
|
pusherable_model.should_receive(:pusherable_trigger_update).once
|
28
|
-
pusherable_model.save
|
30
|
+
pusherable_model.save
|
29
31
|
end
|
30
32
|
|
31
33
|
it "should trigger after update" do
|
@@ -35,6 +37,12 @@ describe Pusherable do
|
|
35
37
|
pusherable_model.destroy
|
36
38
|
end
|
37
39
|
|
40
|
+
it "should not trigger after create when triggers are off" do
|
41
|
+
pusherable_model_without_triggers.deactivate_pusherable_triggers
|
42
|
+
pusherable_model_without_triggers.should_not_receive(:pusherable_trigger_create)
|
43
|
+
pusherable_model_without_triggers.save
|
44
|
+
end
|
45
|
+
|
38
46
|
it "should not trigger events on a regular ActiveRecord model" do
|
39
47
|
non_pusherable_model.should_not_receive(:pusherable_trigger_create)
|
40
48
|
non_pusherable_model.save
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pusherable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Coconate
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|