pusherable 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  language: ruby
2
2
  script: "bundle install && bundle exec rake"
3
3
  rvm:
4
+ - 1.9.2
4
5
  - 1.9.3
5
6
  env:
6
7
  - DB=sqlite3
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 ActiveRecord models for sending messages to a Pusher channel.
5
+ Adds callback hooks for your _ActiveRecord_ 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,32 +22,34 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- Add in the following lines to any ActiveRecord model class:
25
+ Add in the following lines to any _ActiveRecord_ model class:
26
26
 
27
- pusherable(YOUR_CHANNEL)
27
+ pusherable('some_channel')
28
28
 
29
- On your subscribed client(s), events will be triggered by Pusher reflecting your ActiveRecord create/update/destroy actions.
29
+ _Pusherable_ has a default channel of `test_channel`, just like the _Pusher_ example docs, that it will publish to.
30
30
 
31
- Here is a list of the ActiveRecord callbacks that trigger Pusher events...
31
+ On your subscribed client(s), events will be triggered by _Pusher_ reflecting your _ActiveRecord_ create/update/destroy actions.
32
32
 
33
- ```
34
- "model.create" => after_create
35
- "model.update" => after_update
36
- "model.destroy" => before_destroy
37
- ```
33
+ Here is a list of the _ActiveRecord_ callbacks that trigger _Pusher_ events...
34
+
35
+ ActiveRecord Callback => Triggered Event
36
+ ----------------------------------------
37
+ after_create => "model.create"
38
+ after_update => "model.update"
39
+ before_destroy => "model.destroy"
38
40
 
39
41
  ### Example
40
42
 
41
- If you have an ActiveRecord model called, __Post__, and you create a new record, Pusher will receive an event called, "post.create".
42
- It will also carry a payload of data containing the __model_id__. Future implementations may carry a changeset in the data. For now, let's keep it simple.
43
+ If you have an _ActiveRecord_ 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).
43
45
 
44
- The following callbacks that trigger Pusher events in this __Post__ example will then be...
46
+ The following callbacks that trigger _Pusher_ events in this _Post_ example will then be...
45
47
 
46
- ```
47
- "post.create" => after_create
48
- "post.update" => after_update
49
- "post.destroy" => before_destroy
50
- ```
48
+ ActiveRecord Callback => Triggered Event
49
+ ----------------------------------------
50
+ after_create => "post.create"
51
+ after_update => "post.update"
52
+ before_destroy => "post.destroy"
51
53
 
52
54
  ## Contributing
53
55
 
@@ -56,4 +58,3 @@ The following callbacks that trigger Pusher events in this __Post__ example will
56
58
  3. Commit your changes (`git commit -am 'Add some feature'`)
57
59
  4. Push to the branch (`git push origin my-new-feature`)
58
60
  5. Create new Pull Request
59
- st
@@ -1,3 +1,3 @@
1
1
  module Pusherable
2
- VERSION = '1.0.3'
2
+ VERSION = '1.0.4'
3
3
  end
data/lib/pusherable.rb CHANGED
@@ -27,15 +27,15 @@ module Pusherable
27
27
  end
28
28
 
29
29
  def pusherable_trigger_create
30
- Pusher.trigger(pusherable_channel, "#{pusherable_class_name}.create", { model_id: self.id })
30
+ Pusher.trigger(pusherable_channel, "#{pusherable_class_name}.create", self.to_json)
31
31
  end
32
32
 
33
33
  def pusherable_trigger_update
34
- Pusher.trigger(pusherable_channel, "#{pusherable_class_name}.update", { model_id: self.id })
34
+ Pusher.trigger(pusherable_channel, "#{pusherable_class_name}.update", self.to_json)
35
35
  end
36
36
 
37
37
  def pusherable_trigger_destroy
38
- Pusher.trigger(pusherable_channel, "#{pusherable_class_name}.destroy", { model_id: self.id })
38
+ Pusher.trigger(pusherable_channel, "#{pusherable_class_name}.destroy", self.to_json)
39
39
  end
40
40
  end
41
41
  end
@@ -1,6 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Pusherable do
4
+ before do
5
+ Pusher.stub(:trigger).and_return true
6
+ end
7
+
4
8
  describe 'setup' do
5
9
  it 'should make ActiveRecord models pusherable' do
6
10
  NonPusherableModel.pusherable?.should == false
@@ -12,7 +16,6 @@ describe Pusherable do
12
16
  before(:each) do
13
17
  @pusherable_model = PusherableModel.new
14
18
  @non_pusherable_model = NonPusherableModel.new
15
- Pusher.stub(:trigger).and_return true
16
19
  end
17
20
 
18
21
  it 'should trigger after create' do
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,11 @@ require 'bundler/setup'
3
3
  require 'active_record'
4
4
  require 'database_cleaner'
5
5
  require 'pusher'
6
+
7
+ Pusher.app_id = '123456'
8
+ Pusher.secret = 'FAKE'
9
+ Pusher.key = 'FAKE'
10
+
6
11
  require 'pusherable'
7
12
 
8
13
  ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: pusherable
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.3
5
+ version: 1.0.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Tony Coconate
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-26 00:00:00.000000000 Z
12
+ date: 2013-03-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -157,7 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
157
157
  - !ruby/object:Gem::Version
158
158
  segments:
159
159
  - 0
160
- hash: 724947674044802988
160
+ hash: 4238303825927332364
161
161
  version: '0'
162
162
  required_rubygems_version: !ruby/object:Gem::Requirement
163
163
  none: false
@@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
166
  - !ruby/object:Gem::Version
167
167
  segments:
168
168
  - 0
169
- hash: 724947674044802988
169
+ hash: 4238303825927332364
170
170
  version: '0'
171
171
  requirements: []
172
172
  rubyforge_project: