pusherable 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 36cfac78be3ec247ec12eb44be0e88cd8d798cb1
4
- data.tar.gz: b7bc61eba51432ad1907c2b8f5b7b1dfd649643a
3
+ metadata.gz: cfb4424b0d18f8e9424047dad10498e4a25429d6
4
+ data.tar.gz: 54eff13e45b4f50a5c62fbbb8c6ff69f41c44822
5
5
  SHA512:
6
- metadata.gz: 94aa98a270428bb41145c43c92b754fad928a31f0d969de75f9bf56c395bab3b430cdea4444d08178abc268198518cf7238202b34e3af9d2131d44cdcc8f5381
7
- data.tar.gz: 7a0671e450a25dba337e73ed485b8abb6c805920a2a5c089f2b542f510e9bdc01a7036b08feb847abb3d7f91e2f0810491ebd2655cc2b17fa6bb6be0d862f298
6
+ metadata.gz: 487d350d8fb6115721bf1d23668d948f5a34f62eeebad2d0b949006aad2184d5755511b6e382ecc9457551c722660189b31ace59d6766db79b84cb7670b6a2e4
7
+ data.tar.gz: 50b79cb3ea0ccfee89d7473f191edc18a8410fb3d2fd2866445049ccec2c7541ae2f06f487541ec9e648c39bb9121846929f8b8afe318de4d239ef40893b6678
data/Gemfile CHANGED
@@ -2,7 +2,3 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem"s dependencies in pusherable.gemspec
4
4
  gemspec
5
-
6
- group :test do
7
- gem "rake"
8
- end
@@ -1,3 +1,3 @@
1
1
  module Pusherable
2
- VERSION = "1.2.2"
2
+ VERSION = "1.2.3"
3
3
  end
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.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-06-26 00:00:00.000000000 Z
11
+ date: 2014-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord