nobject 1.0.2 → 1.0.4

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nobject/local.rb +17 -4
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a07616d80ff414ef453ae35d7f8c7ae88b6c62f6683444bb2f2fd629a39b4f0d
4
- data.tar.gz: 5e9eba6b82be1695ffcf0f26b936c2939c66ea9683e459599b3909ed3e604280
3
+ metadata.gz: dd9a0ba0c18519a69609a3e0086d3c4c1f849c44d87622db31bf19326c0a02a8
4
+ data.tar.gz: 6ad810aab2eb7a4aa50a02334c8c71913738ffabeb058f8b95f394e1dd7178e6
5
5
  SHA512:
6
- metadata.gz: 16428d2597623632176561480785fc7b02d7440177f37561ee3030c80db0c0fa5009e0583067fc9e94a106301ffdfb0b0dfb5e67dc83ed438d8281a9879bed24
7
- data.tar.gz: badd4e8b38c40fe20300b58034e5815ca30a804132257334a86d009e2a25cf4053288cdfe5f1e834b1e5bddbc4050461fcd7bea054f9db37d7212b264e29ee91
6
+ metadata.gz: 7e7b50bf396709b876f0590d0c6c47278cc09484a18923283e2ead7987754db01e31b7514e1f0a0cb9cb4493eb9a4c060125116383af83cf240e89072883d5e3
7
+ data.tar.gz: 604f37b1b6e1aa9dfdc631d7a8394774c553a59a687e9c1971b16140bd3eae8e927a3cea608956e82caf2588c101e424e9659ee45014c7343a3000663f2f00a4
data/lib/nobject/local.rb CHANGED
@@ -24,11 +24,22 @@ module Nobject
24
24
  msg = { method: method, args: args }
25
25
  msg_bytes = Marshal.dump(msg)
26
26
 
27
- @socket.send([msg_bytes.length].pack('Q>'), 0)
28
- @socket.send(msg_bytes, 0)
27
+ begin
28
+ @socket.send([msg_bytes.length].pack('Q>'), 0)
29
+ @socket.send(msg_bytes, 0)
30
+ rescue Exception
31
+ raise Local::MethodRequestFailure.new("did not receive response from call to `#{method}' over the network")
32
+ end
29
33
 
30
- return_size = @socket.recv(8).unpack('Q>').first
31
- return_data = Marshal.load(@socket.recv(return_size))
34
+ return_data = begin
35
+ Marshal.load(
36
+ @socket.recv(
37
+ @socket.recv(8).unpack('Q>').first
38
+ )
39
+ )
40
+ rescue Exception
41
+ raise Local::MethodResponseFailure.new("did not receive response from call to `#{method}' over the network")
42
+ end
32
43
 
33
44
  case return_data.first
34
45
  when :ok then return_data.last
@@ -51,4 +62,6 @@ module Nobject
51
62
 
52
63
  class Local::UnknownReturnDataType < RuntimeError; end
53
64
  class Local::InvalidMethod < RuntimeError; end
65
+ class Local::MethodRequestFailure < RuntimeError; end
66
+ class Local::MethodResponseFailure < RuntimeError; end
54
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nobject
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Lunt