diff options
author | Javan Makhmali <javan@javan.us> | 2016-01-30 15:41:14 -0500 |
---|---|---|
committer | Jon Moss <me@jonathanmoss.me> | 2016-01-30 20:41:54 -0500 |
commit | 896950a605c509f19f3e8cbde11e23ca87036ca3 (patch) | |
tree | 7980c40f97772ed8c047b167ca68c21ae2742bb4 /actioncable/lib/assets/javascripts/action_cable/subscription.coffee | |
parent | 96355e87cba247246234386b0af9273cc5d59db9 (diff) | |
download | rails-896950a605c509f19f3e8cbde11e23ca87036ca3.tar.gz rails-896950a605c509f19f3e8cbde11e23ca87036ca3.tar.bz2 rails-896950a605c509f19f3e8cbde11e23ca87036ca3.zip |
Add task to create precompiled action_cable.js and reorganize to accommodate
Diffstat (limited to 'actioncable/lib/assets/javascripts/action_cable/subscription.coffee')
-rw-r--r-- | actioncable/lib/assets/javascripts/action_cable/subscription.coffee | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/actioncable/lib/assets/javascripts/action_cable/subscription.coffee b/actioncable/lib/assets/javascripts/action_cable/subscription.coffee deleted file mode 100644 index 339d676933..0000000000 --- a/actioncable/lib/assets/javascripts/action_cable/subscription.coffee +++ /dev/null @@ -1,68 +0,0 @@ -# A new subscription is created through the ActionCable.Subscriptions instance available on the consumer. -# It provides a number of callbacks and a method for calling remote procedure calls on the corresponding -# Channel instance on the server side. -# -# An example demonstrates the basic functionality: -# -# App.appearance = App.cable.subscriptions.create "AppearanceChannel", -# connected: -> -# # Called once the subscription has been successfully completed -# -# appear: -> -# @perform 'appear', appearing_on: @appearingOn() -# -# away: -> -# @perform 'away' -# -# appearingOn: -> -# $('main').data 'appearing-on' -# -# The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server -# by calling the `@perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away). -# The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter. -# -# This is how the server component would look: -# -# class AppearanceChannel < ApplicationActionCable::Channel -# def subscribed -# current_user.appear -# end -# -# def unsubscribed -# current_user.disappear -# end -# -# def appear(data) -# current_user.appear on: data['appearing_on'] -# end -# -# def away -# current_user.away -# end -# end -# -# The "AppearanceChannel" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name. -# The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the @perform method. -class ActionCable.Subscription - constructor: (@subscriptions, params = {}, mixin) -> - @identifier = JSON.stringify(params) - extend(this, mixin) - @subscriptions.add(this) - @consumer = @subscriptions.consumer - - # Perform a channel action with the optional data passed as an attribute - perform: (action, data = {}) -> - data.action = action - @send(data) - - send: (data) -> - @consumer.send(command: "message", identifier: @identifier, data: JSON.stringify(data)) - - unsubscribe: -> - @subscriptions.remove(this) - - extend = (object, properties) -> - if properties? - for key, value of properties - object[key] = value - object |