Skip to content
Render views to Pusher from anywhere in your application
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib Initial commit
.gitignore Initial commit
.rvmrc Initial commit
Gemfile Initial commit
README.markdown Adds README
Rakefile Initial commit
action_pusher.gemspec update summary & description



Render views to Pusher from anywhere in your application

Pusher users often want to transmit JSON or HTML to the browser upon model events, but models have no business generating either. ActionPusher allows you to render data to Pusher using your existing view templates from an observer or model.



gem 'action_pusher', :require => false

Create an initializer at config/initializers/action_pusher.rb such as:

require 'action_pusher'
ActionPusher::Base.view_paths = File.join( Rails.root, 'app/api' )

Ensure that view_paths points to the location where your templates are actually stored. The default is app/views.

Create a directory at app/pushers to store your ActionPusher "controllers".



class NotificationPusher < ActionPusher::Base
  def initialize(notification)
    @notification = notification
    event = @notification.event
    channel =
    Pushable.push(channel, event, render(template: 'notifications/show'))

  def controller_path; 'notifications'; end

Now when I call notification ) from my model callbacks, observers, what-have-you... my Notification model object is transmitted to Pusher as pretty JSON output from jbuilder!


This gem was inspired by's solution to a question on StackOverflow, I just wrapped it up in a gem once I got it working well in production.

Something went wrong with that request. Please try again.