diff options
author | Javan Makhmali <javan@javan.us> | 2018-11-02 16:03:06 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-02 16:03:06 -0500 |
commit | b858c2c76cbe66b50df81372156d4b6f6e187be1 (patch) | |
tree | 119448211713b6a172b301ab164dd54dd5718654 /actioncable/app/assets/javascripts/action_cable/subscriptions.coffee | |
parent | d80925b169f0db950697868f5659a67cc03e8654 (diff) | |
parent | c96139af71e6f7c36e25bccea6b05ccd9523531a (diff) | |
download | rails-b858c2c76cbe66b50df81372156d4b6f6e187be1.tar.gz rails-b858c2c76cbe66b50df81372156d4b6f6e187be1.tar.bz2 rails-b858c2c76cbe66b50df81372156d4b6f6e187be1.zip |
Merge pull request #34177 from rmacklin/convert-actioncable-to-es2015
Convert ActionCable javascript to ES2015 modules with a modern build environment
Diffstat (limited to 'actioncable/app/assets/javascripts/action_cable/subscriptions.coffee')
-rw-r--r-- | actioncable/app/assets/javascripts/action_cable/subscriptions.coffee | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/actioncable/app/assets/javascripts/action_cable/subscriptions.coffee b/actioncable/app/assets/javascripts/action_cable/subscriptions.coffee deleted file mode 100644 index aa052bf5d8..0000000000 --- a/actioncable/app/assets/javascripts/action_cable/subscriptions.coffee +++ /dev/null @@ -1,66 +0,0 @@ -# Collection class for creating (and internally managing) channel subscriptions. The only method intended to be triggered by the user -# us ActionCable.Subscriptions#create, and it should be called through the consumer like so: -# -# @App = {} -# App.cable = ActionCable.createConsumer "ws://example.com/accounts/1" -# App.appearance = App.cable.subscriptions.create "AppearanceChannel" -# -# For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription. -class ActionCable.Subscriptions - constructor: (@consumer) -> - @subscriptions = [] - - create: (channelName, mixin) -> - channel = channelName - params = if typeof channel is "object" then channel else {channel} - subscription = new ActionCable.Subscription @consumer, params, mixin - @add(subscription) - - # Private - - add: (subscription) -> - @subscriptions.push(subscription) - @consumer.ensureActiveConnection() - @notify(subscription, "initialized") - @sendCommand(subscription, "subscribe") - subscription - - remove: (subscription) -> - @forget(subscription) - unless @findAll(subscription.identifier).length - @sendCommand(subscription, "unsubscribe") - subscription - - reject: (identifier) -> - for subscription in @findAll(identifier) - @forget(subscription) - @notify(subscription, "rejected") - subscription - - forget: (subscription) -> - @subscriptions = (s for s in @subscriptions when s isnt subscription) - subscription - - findAll: (identifier) -> - s for s in @subscriptions when s.identifier is identifier - - reload: -> - for subscription in @subscriptions - @sendCommand(subscription, "subscribe") - - notifyAll: (callbackName, args...) -> - for subscription in @subscriptions - @notify(subscription, callbackName, args...) - - notify: (subscription, callbackName, args...) -> - if typeof subscription is "string" - subscriptions = @findAll(subscription) - else - subscriptions = [subscription] - - for subscription in subscriptions - subscription[callbackName]?(args...) - - sendCommand: (subscription, command) -> - {identifier} = subscription - @consumer.send({command, identifier}) |