pusherable 1.1.0 → 1.1.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4d09f4ddac191240056671ee74cbd3fe0e3c0073
4
+ data.tar.gz: 7eccf49e2569a0bb3b4d385121097ac5a2bd087a
5
+ SHA512:
6
+ metadata.gz: 39247b971b02fc048fe5f0c20ddc69e24ffd0d382adc18f57f418f8230df37241dea592f2d42dd73b7f61a3d2722b57be00101d1cc57f032afb518affe8e1c90
7
+ data.tar.gz: e4a17efcadace9ae6559a1d345e1d5986e5e184d76b7f911dd364b56fbfadda5af0bf3a4135a0a958f0bc4ae20aa9b45dab4f3da66a33032360cb24c8adc4949
data/README.md CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/tonycoco/pusherable.png)](https://travis-ci.org/tonycoco/pusherable)
4
4
 
5
- Adds callback hooks for your _ActiveModel_ models for sending messages to a _Pusher_ channel.
5
+ Adds callback hooks for your `ActiveModel` models for sending messages to a `Pusher` channel.
6
6
 
7
7
  ## Installation
8
8
 
9
- Install and configure _Pusher_ to work on your application by following the [pusher gem's instructions](https://github.com/pusher/pusher-gem).
9
+ Install and configure `Pusher` to work on your application by following the [pusher gem's instructions](https://github.com/pusher/pusher-gem).
10
10
 
11
- Then, add this line to your application's _Gemfile_:
11
+ Then, add this line to your application's `Gemfile`:
12
12
 
13
13
  gem "pusherable"
14
14
 
@@ -22,40 +22,52 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- Add in the following lines to any _ActiveModel_ model class:
25
+ Add in the following lines to any `ActiveModel` model class:
26
26
 
27
27
  pusherable("some_channel")
28
28
 
29
- _Pusherable_ has a default channel of `test_channel`, just like the _Pusher_ example docs, that it will publish to.
29
+ A `pusherable` model triggers events on a default channel of `test_channel`, just like the `Pusher` example docs, that it will publish to.
30
30
 
31
- On your subscribed client(s), events will be triggered by _Pusher_ reflecting your ActiveModel_ create/update/destroy actions.
31
+ On your subscribed client(s), events will be triggered by `Pusher` reflecting your `ActiveModel` create, update and destroy actions.
32
32
 
33
- Here is a list of the _ActiveModel_ callbacks that trigger _Pusher_ events...
33
+ Here is a list of the `ActiveModel` callbacks that trigger `Pusher` events...
34
34
 
35
- ActiveModel Callback => Triggered Event
36
- ----------------------------------------
37
- after_create => "model.create"
38
- after_update => "model.update"
39
- before_destroy => "model.destroy"
35
+ `ActiveModel` callbacks (Non-Transactional):
36
+
37
+ after_create will trigger "model.create"
38
+ after_update will trigger "model.update"
39
+ before_destroy will trigger "model.destroy"
40
+
41
+ `ActiveModel` callbacks (Transactional):
42
+
43
+ after_commit on :create will trigger "model.create"
44
+ after_commit on :update will trigger "model.update"
45
+ after_commit on :destroy will trigger "model.destroy"
40
46
 
41
47
  ### Example
42
48
 
43
- If you have an _ActiveModel_ model called, _Post_, and you create a new record, _Pusher_ will receive an event called, "post.create".
44
- It will also carry a payload of data containing a _JSON_ representation of the record (literally calling `to_json` on the record).
49
+ If you have an `ActiveModel` model called, `Post`, and you create a new record, `Pusher` will receive an event called, `"post.create"`.
50
+ It will also carry a payload of data containing a JSON representation of the record (literally calling `#to_json` on the record).
51
+
52
+ The following callbacks that trigger `Pusher` events in this `Post` example will then be...
53
+
54
+ `ActiveModel` callbacks (Non-Transactional):
55
+
56
+ after_create will trigger "post.create"
57
+ after_update will trigger "post.update"
58
+ before_destroy will trigger "post.destroy"
45
59
 
46
- The following callbacks that trigger _Pusher_ events in this _Post_ example will then be...
60
+ `ActiveModel` callbacks (Transactional):
47
61
 
48
- ActiveModel Callback => Triggered Event
49
- ----------------------------------------
50
- after_create => "post.create"
51
- after_update => "post.update"
52
- before_destroy => "post.destroy"
62
+ after_commit on :create will trigger "post.create"
63
+ after_commit on :update will trigger "post.update"
64
+ after_commit on :destroy will trigger "post.destroy"
53
65
 
54
- Currently this gem extends `ActiveRecord::Base` and `Mongoid::Document` if defined.
66
+ Currently this gem extends `ActiveRecord::Base` and `Mongoid::Document` (if defined).
55
67
 
56
68
  `ActiveRecord::Base.extend Pusherable`
57
69
 
58
- For any other `ActiveModel` compliant "Data store", simply mirror this statement.
70
+ For any other `ActiveModel` compliant data store, simply mirror this statement.
59
71
 
60
72
  ## Contributing
61
73
 
@@ -1,3 +1,3 @@
1
1
  module Pusherable
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
data/lib/pusherable.rb CHANGED
@@ -15,9 +15,15 @@ module Pusherable
15
15
  self.pusherable_channel = pusherable_channel
16
16
 
17
17
  class_eval do
18
- after_create :pusherable_trigger_create
19
- after_update :pusherable_trigger_update
20
- before_destroy :pusherable_trigger_destroy
18
+ if defined?(Mongoid) && defined?(Mongoid::Document) && include?(Mongoid::Document)
19
+ after_create :pusherable_trigger_create
20
+ after_update :pusherable_trigger_update
21
+ before_destroy :pusherable_trigger_destroy
22
+ else
23
+ after_commit :pusherable_trigger_create, on: :create
24
+ after_commit :pusherable_trigger_update, on: :update
25
+ after_commit :pusherable_trigger_destroy, on: :destroy
26
+ end
21
27
 
22
28
  def self.pusherable?
23
29
  true
metadata CHANGED
@@ -1,144 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pusherable
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.1.0
4
+ version: 1.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tony Coconate
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-27 00:00:00.000000000 Z
11
+ date: 2013-06-06 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activerecord
16
- type: :development
17
15
  requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.2.0
22
- none: false
20
+ type: :development
21
+ prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
- - - ! '>='
24
+ - - '>='
26
25
  - !ruby/object:Gem::Version
27
26
  version: 3.2.0
28
- none: false
29
- prerelease: false
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: activesupport
32
- type: :development
33
29
  requirement: !ruby/object:Gem::Requirement
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: 3.2.0
38
- none: false
34
+ type: :development
35
+ prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
- - - ! '>='
38
+ - - '>='
42
39
  - !ruby/object:Gem::Version
43
40
  version: 3.2.0
44
- none: false
45
- prerelease: false
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: mongoid
48
- type: :development
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '3'
54
- none: false
48
+ type: :development
49
+ prerelease: false
55
50
  version_requirements: !ruby/object:Gem::Requirement
56
51
  requirements:
57
- - - ! '>='
52
+ - - '>='
58
53
  - !ruby/object:Gem::Version
59
54
  version: '3'
60
- none: false
61
- prerelease: false
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: mongoid-rspec
64
- type: :development
65
57
  requirement: !ruby/object:Gem::Requirement
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '1.6'
70
- none: false
62
+ type: :development
63
+ prerelease: false
71
64
  version_requirements: !ruby/object:Gem::Requirement
72
65
  requirements:
73
- - - ! '>='
66
+ - - '>='
74
67
  - !ruby/object:Gem::Version
75
68
  version: '1.6'
76
- none: false
77
- prerelease: false
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: pusher
80
- type: :development
81
71
  requirement: !ruby/object:Gem::Requirement
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
85
75
  version: 0.11.0
86
- none: false
76
+ type: :development
77
+ prerelease: false
87
78
  version_requirements: !ruby/object:Gem::Requirement
88
79
  requirements:
89
80
  - - ~>
90
81
  - !ruby/object:Gem::Version
91
82
  version: 0.11.0
92
- none: false
93
- prerelease: false
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rake
96
- type: :development
97
85
  requirement: !ruby/object:Gem::Requirement
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
- none: false
90
+ type: :development
91
+ prerelease: false
103
92
  version_requirements: !ruby/object:Gem::Requirement
104
93
  requirements:
105
- - - ! '>='
94
+ - - '>='
106
95
  - !ruby/object:Gem::Version
107
96
  version: '0'
108
- none: false
109
- prerelease: false
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rspec
112
- type: :development
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: 2.12.0
118
- none: false
104
+ type: :development
105
+ prerelease: false
119
106
  version_requirements: !ruby/object:Gem::Requirement
120
107
  requirements:
121
- - - ! '>='
108
+ - - '>='
122
109
  - !ruby/object:Gem::Version
123
110
  version: 2.12.0
124
- none: false
125
- prerelease: false
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: sqlite3
128
- type: :development
129
113
  requirement: !ruby/object:Gem::Requirement
130
114
  requirements:
131
- - - ! '>='
115
+ - - '>='
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0'
134
- none: false
118
+ type: :development
119
+ prerelease: false
135
120
  version_requirements: !ruby/object:Gem::Requirement
136
121
  requirements:
137
- - - ! '>='
122
+ - - '>='
138
123
  - !ruby/object:Gem::Version
139
124
  version: '0'
140
- none: false
141
- prerelease: false
142
125
  description: Adds callback hooks for your ActiveModel models for sending messages
143
126
  to a Pusher channel.
144
127
  email:
@@ -164,33 +147,26 @@ files:
164
147
  - spec/support/schema.rb
165
148
  homepage: https://github.com/tonycoco/pusherable
166
149
  licenses: []
150
+ metadata: {}
167
151
  post_install_message:
168
152
  rdoc_options: []
169
153
  require_paths:
170
154
  - lib
171
155
  required_ruby_version: !ruby/object:Gem::Requirement
172
156
  requirements:
173
- - - ! '>='
157
+ - - '>='
174
158
  - !ruby/object:Gem::Version
175
- segments:
176
- - 0
177
- hash: 3897461447202856770
178
159
  version: '0'
179
- none: false
180
160
  required_rubygems_version: !ruby/object:Gem::Requirement
181
161
  requirements:
182
- - - ! '>='
162
+ - - '>='
183
163
  - !ruby/object:Gem::Version
184
- segments:
185
- - 0
186
- hash: 3897461447202856770
187
164
  version: '0'
188
- none: false
189
165
  requirements: []
190
166
  rubyforge_project:
191
- rubygems_version: 1.8.23
167
+ rubygems_version: 2.0.2
192
168
  signing_key:
193
- specification_version: 3
169
+ specification_version: 4
194
170
  summary: Adds callback hooks to your models for sending messages to a Pusher channel.
195
171
  test_files:
196
172
  - spec/mongoid_pusherable_spec.rb