opal-actioncable 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f02264089fcb2f605f6176051ea09646300edbd7
4
- data.tar.gz: 2770dae1cf768542bf677e1f8c98ed7aafc90c52
3
+ metadata.gz: cb888a04e6ababbd2a42b5df4da76631f8e52442
4
+ data.tar.gz: bed2a15fd759297c4e80ac65f7c2054fd3eca33b
5
5
  SHA512:
6
- metadata.gz: 1e011c93239a69cedbb18c5a6e499f5f490955f1c2de3ae600518445819235d5edea921d3f308fe90b0be8ce4ed4bf6b998b3e7ad6467bd2db4ae0b274c13ae3
7
- data.tar.gz: c703b84afe5ac401f9e5caebaf6e3ed9b2b9fb8a89b96368c3dd8b20f008709f46ee983733e9c40e31e14c4dc8c11478edc7ee2ee5b25c7c36c9282bea48c139
6
+ metadata.gz: eeff47524c87c954267e3472beccfd37586f3c73b37296beddfdb8a904563211823542adaa15e41c0dae8547e9ef9f96909e14c4c32f1f431971502e88e45f5b
7
+ data.tar.gz: ffd9aafe2c76b9eb8465e58e4a8297d6e42f94ae7cbe9800228dca5532efb8e7ac2afe8dea7757fb3c1d9646b692b8b22f22e2a32209c08f7bcbff43a6d03fe5
@@ -1,5 +1,5 @@
1
1
  module Opal
2
2
  module ActionCable
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
@@ -3,6 +3,9 @@ class ActionCable::Connection
3
3
 
4
4
  def initialize consumer
5
5
  @native = `new ActionCable.Connection(#{consumer})`
6
+ @subscriptions = consumer.subscriptions
7
+ @monitor = ConnectionMonitor.new self
8
+
6
9
  %x{
7
10
  Opal.defn(self.$class(), 'send', function(){ return self.$delegate_native('send', arguments); });
8
11
  Opal.defn(self.$class(), 'open', function(){ return self.$delegate_native('open', arguments); });
@@ -20,10 +23,11 @@ class ActionCable::Connection
20
23
  end
21
24
 
22
25
  def send data
26
+ data = `#{`#{data}['$is_a?']` ? data.to_n : data}`
23
27
  `#{@native}.send(#{data})`
24
28
  end
25
29
 
26
- def delegate_native name, args
30
+ def delegate_native name, args=nil
27
31
  `#{@native}[#{name}].apply(#{@native}, args)`
28
32
  end
29
33
 
@@ -1,31 +1,32 @@
1
- class ActionCable::Connection
1
+ class ActionCable::Consumer
2
2
  include Native::Helpers
3
+ attr_reader :subscriptions, :connection, :connectionMonitor
3
4
 
4
- def initialize consumer
5
- @native = `new ActionCable.Connection(#{consumer})`
5
+ def initialize url
6
+ @url = url
7
+ @subscriptions = ActionCable::Subscriptions.new self
8
+ @connection = ActionCable::Connection.new self
6
9
  %x{
7
- Opal.defn(self.$class(), 'send', function(){ return self.$delegate_native('send', arguments); });
8
- Opal.defn(self.$class(), 'open', function(){ return self.$delegate_native('open', arguments); });
9
- Opal.defn(self.$class(), 'close', function(){ return self.$delegate_native('close', arguments); });
10
- Opal.defn(self.$class(), 'reopen', function(){ return self.$delegate_native('reopen', arguments); });
11
- Opal.defn(self.$class(), 'getProtocol', function(){ return self.$delegate_native('getProtocol', arguments); });
12
- Opal.defn(self.$class(), 'isOpen', function(){ return self.$delegate_native('isOpen', arguments); });
13
- Opal.defn(self.$class(), 'isActive', function(){ return self.$delegate_native('isActive', arguments); });
14
- Opal.defn(self.$class(), 'isProtocolSupported', function(){ return self.$delegate_native('isProtocolSupported', arguments); });
15
- Opal.defn(self.$class(), 'isState', function(){ return self.$delegate_native('isState', arguments); });
16
- Opal.defn(self.$class(), 'getState', function(){ return self.$delegate_native('getState', arguments); });
17
- Opal.defn(self.$class(), 'installEventHandlers', function(){ return self.$delegate_native('installEventHandlers', arguments); });
18
- Opal.defn(self.$class(), 'uninstallEventHandlers', function(){ return self.$delegate_native('uninstallEventHandlers', arguments); });
10
+ Opal.defn(self.$class(), 'send', #{self}.$send);
11
+ Opal.defn(self.$class(), 'connect', #{self}.$connect);
12
+ Opal.defn(self.$class(), 'disconnect', #{self}.$disconnect);
13
+ Opal.defn(self.$class(), 'ensureActiveConnection', #{self}.$ensureActiveConnection);
19
14
  }
20
15
  end
21
16
 
22
17
  def send data
23
- `#{@native}.send(#{data})`
18
+ @connection.send data
24
19
  end
25
20
 
26
- def delegate_native name, args
27
- `#{@native}[#{name}].apply(#{@native}, args)`
21
+ def connect
22
+ `#{@connection}.open()`
28
23
  end
29
24
 
30
-
25
+ def disconnect
26
+ `#{@connection}.close({allowReconnect: false})`
27
+ end
28
+
29
+ def ensureActiveConnection
30
+ connect if `!#{@connection}.isActive()`
31
+ end
31
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal-actioncable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jose Añasco
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-05-18 00:00:00.000000000 Z
12
+ date: 2016-05-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: opal
@@ -68,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
68
  version: '0'
69
69
  requirements: []
70
70
  rubyforge_project:
71
- rubygems_version: 2.4.5.1
71
+ rubygems_version: 2.4.5
72
72
  signing_key:
73
73
  specification_version: 4
74
74
  summary: ActionCable adapter for Opal