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