class WebsocketRails::DataStore::Controller

The Controller DataStore acts as a stand-in for instance variables in your controller. At it's core, it is a Hash which is accessible inside your controller through the `#controller_store` instance method. Any values set in the controller store will be visible by all connected users which trigger events that use that controller. However, values set in one controller will not be visible by other controllers.

class AccountController < WebsocketRails::BaseController
  # We will use a before filter to set the initial value
  before_action { controller_store[:event_count] ||= 0 }

  # Mapped as `accounts.important_event` in the Event Router
  def important_event
    # This will be private for each controller
    controller_store[:event_count] += 1
    trigger_success controller_store[:event_count]
  end
end

class ProductController < WebsocketRails::BaseController
  # We will use a before filter to set the initial value
  before_action { controller_store[:event_count] ||= 0 }

  # Mapped as `products.boring_event` in the Event Router
  def boring_event
    # This will be private for each controller
    controller_store[:event_count] += 1
    trigger_success controller_store[:event_count]
  end
end

# trigger `accounts.important_event`
=> 1
# trigger `accounts.important_event`
=> 2
# trigger `products.boring_event`
=> 1

Attributes

controller[RW]

Public Class Methods

new(controller) click to toggle source
Calls superclass method WebsocketRails::DataStore::Base::new
# File lib/websocket_rails/data_store.rb, line 138
def initialize(controller)
  super()
  @controller = controller
end