aboutsummaryrefslogtreecommitdiffstats
path: root/lib/assets/javascripts/channel.js.coffee
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2015-02-12 20:47:26 +0530
committerPratik Naik <pratiknaik@gmail.com>2015-02-12 20:47:26 +0530
commit2c0c9a17d07832e8a4a3a50b95e1f8f15ab22d5a (patch)
tree1e9f31f4c615a06db688b42de3267bd892e48313 /lib/assets/javascripts/channel.js.coffee
parent00aec9c8e8b30cfb40454ed44693465843b0d4b2 (diff)
downloadrails-2c0c9a17d07832e8a4a3a50b95e1f8f15ab22d5a.tar.gz
rails-2c0c9a17d07832e8a4a3a50b95e1f8f15ab22d5a.tar.bz2
rails-2c0c9a17d07832e8a4a3a50b95e1f8f15ab22d5a.zip
Move assets to the gem
Diffstat (limited to 'lib/assets/javascripts/channel.js.coffee')
-rw-r--r--lib/assets/javascripts/channel.js.coffee27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/assets/javascripts/channel.js.coffee b/lib/assets/javascripts/channel.js.coffee
new file mode 100644
index 0000000000..058bcc03aa
--- /dev/null
+++ b/lib/assets/javascripts/channel.js.coffee
@@ -0,0 +1,27 @@
+class @Cable.Channel
+ constructor: (params = {}) ->
+ @channelName ?= @underscore @constructor.name
+
+ params['channel'] = @channelName
+ @channelIdentifier = JSON.stringify params
+
+ cable.subscribe(@channelIdentifier, {
+ onConnect: @connected
+ onDisconnect: @disconnected
+ onReceiveData: @received
+ })
+
+ connected: =>
+ # Override in the subclass
+
+ disconnected: =>
+ # Override in the subclass
+
+ received: (data) =>
+ # Override in the subclass
+
+ send: (data) ->
+ cable.sendData @channelIdentifier, JSON.stringify data
+
+ underscore: (value) ->
+ value.replace(/[A-Z]/g, (match) => "_#{match.toLowerCase()}").substr(1) \ No newline at end of file