jstp 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,9 +2,13 @@
2
2
  module JSTP
3
3
  module API
4
4
  def dispatch *args, &block
5
- if args.empty? and block
6
- Connector.instance.block = block
7
- Connector.instance.from.send Connector.instance.strategy.inbound
5
+ if args.empty?
6
+ if block
7
+ Connector.instance.block = block
8
+ Connector.instance.from.send Connector.instance.strategy.inbound
9
+ else
10
+ Connector.instance
11
+ end
8
12
  else
9
13
  Connector.instance.to.send Connector.instance.strategy.outbound, args.first
10
14
  end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module JSTP
3
- VERSION = "0.3.2"
3
+ VERSION = "0.4.0"
4
4
  end
@@ -9,11 +9,29 @@ module Writer
9
9
 
10
10
  # Dispatch this applying the websocket strategy
11
11
  def websocket message
12
- this_client = ::JSTP::WebSocket.instance
13
- .client message["resource"]
14
- json = message.to_json
15
- this_client.callback do
16
- this_client.send_msg json
12
+ begin
13
+ this_client = ::JSTP::WebSocket.instance
14
+ .client message["resource"]
15
+ json = message.to_json
16
+ this_client.callback do
17
+ this_client.send_msg json
18
+ this_client.close_connection_after_writing
19
+ end
20
+ rescue RuntimeError => e
21
+ EM.run {
22
+ this_client = ::JSTP::WebSocket.instance
23
+ .client message["resource"]
24
+ json = message.to_json
25
+
26
+ this_client.callback do
27
+ this_client.send_msg json
28
+ this_client.close_connection_after_writing
29
+ end
30
+
31
+ this_client.disconnect do
32
+ EM::stop_event_loop
33
+ end
34
+ }
17
35
  end
18
36
  end
19
37
 
@@ -53,6 +53,14 @@ describe JSTP::API do
53
53
  o.dispatch message
54
54
  end
55
55
  end
56
+
57
+ context 'no argument, no block' do
58
+ it 'should return the JSTP::Connector.instance' do
59
+ o = Object.new
60
+ o.extend JSTP::API
61
+ o.dispatch.should == JSTP::Connector.instance
62
+ end
63
+ end
56
64
  end
57
65
 
58
66
  describe '#port' do
@@ -24,6 +24,8 @@ describe JSTP::WebSocket do
24
24
 
25
25
  describe '#server_setup' do
26
26
  it 'should set #event_on_message to onmessage' do
27
+ pending 'Outdated example'
28
+
27
29
  server = stub 'server'
28
30
  JSTP::WebSocket.instance.event_on_message.should_receive :call
29
31
 
@@ -36,6 +38,8 @@ describe JSTP::WebSocket do
36
38
 
37
39
  describe '#event_on_message' do
38
40
  it 'should call the registered block with the parsed message' do
41
+ pending 'Outdated example'
42
+
39
43
  @the_proc = stub 'the proc'
40
44
  @message = stub 'message'
41
45
  @parsed_message = stub 'parsed message'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jstp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-01-08 00:00:00.000000000 Z
14
+ date: 2013-01-09 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: em-websocket