nobject 1.0.3 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ee645cd58c94a293439c93007bc3f813a5e6188977464b0f40467eea00859ee
4
- data.tar.gz: f25a35c4a1126b3147453c2bb6fc0deba23e88ef453b5666745b1f8b1fe3c0f1
3
+ metadata.gz: b5426515919dc12f929e48ca2bb07367990b839e0e729d372b945074c5911b1b
4
+ data.tar.gz: 3f9907f956541069d905c965172379bcf44d0f3d0b9821045b492fe6da2ef35a
5
5
  SHA512:
6
- metadata.gz: 9c0e1d4284c277efb739e603d6c264b76eec546cc3390b52ce64b7ca345622509c1992448eb41ddc87adc0b6e4993b0df11343ca35f32c29e06878d0fafb5c33
7
- data.tar.gz: 8455e457c1a38d8deb1ecbd945164daecedeef70fda57a4343cd9e6509901298b7ace5453748d469ff0ed39b9b134570478188ea06e02640b5f06b0292f757ef
6
+ metadata.gz: c3bf715cf07ff202d8618cefa245f07a8f18cc31f3f7abcc08c5e7b0fdd0b76094a541634c6473b15e63d9f09223f1e207e3b9ba3bf2bacecf3747fdef895c68
7
+ data.tar.gz: 37a7d9f5569b534cb6273a74d22426ee11fb17896b1beb8bd4aaefe39534e64032e98217b9bddd594efbad3074b305931284fe5493e2f4f4e145a51c4f85af9d
data/lib/nobject/local.rb CHANGED
@@ -24,17 +24,23 @@ 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 = begin
31
- @socket.recv(8).unpack('Q>').first
34
+ return_data = begin
35
+ Marshal.load(
36
+ @socket.recv(
37
+ @socket.recv(8).unpack('Q>').first
38
+ )
39
+ )
32
40
  rescue Exception
33
- raise Local::MethodFailure.new("failed to call method `#{method}' over the network")
41
+ raise Local::MethodResponseFailure.new("did not receive response from call to `#{method}' over the network")
34
42
  end
35
43
 
36
- return_data = Marshal.load(@socket.recv(return_size))
37
-
38
44
  case return_data.first
39
45
  when :ok then return_data.last
40
46
  when :raise then raise return_data.last
@@ -56,5 +62,6 @@ module Nobject
56
62
 
57
63
  class Local::UnknownReturnDataType < RuntimeError; end
58
64
  class Local::InvalidMethod < RuntimeError; end
59
- class Local::MethodFailure < RuntimeError; end
65
+ class Local::MethodRequestFailure < RuntimeError; end
66
+ class Local::MethodResponseFailure < RuntimeError; end
60
67
  end
@@ -17,7 +17,7 @@ module Nobject
17
17
  msg_size = @socket.recv(8).unpack('Q>').first
18
18
  msg = Marshal.load(@socket.recv(msg_size))
19
19
 
20
- result = @obj.send(msg[:method], *msg[:args]) #local_method, *msg[:args])
20
+ result = @obj.send(msg[:method], *msg[:args])
21
21
  network_return([
22
22
  :ok,
23
23
  result
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nobject
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Lunt
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-04-09 00:00:00.000000000 Z
10
+ date: 2025-04-10 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: network-hosted objects that you can call methods on as if they were local
13
13
  email: jefflunt@gmail.com