File tree Expand file tree Collapse file tree 2 files changed +49
-2
lines changed
lib/async/container/notify Expand file tree Collapse file tree 2 files changed +49
-2
lines changed Original file line number Diff line number Diff line change @@ -25,6 +25,8 @@ def self.load(message)
25
25
value = false
26
26
elsif value == "1"
27
27
value = true
28
+ elsif key == "errno" and value =~ /\A \- ?\d +\z /
29
+ value = Integer ( value )
28
30
end
29
31
30
32
next [ key . downcase . to_sym , value ]
@@ -74,7 +76,11 @@ def receive
74
76
75
77
message = Server . load ( data )
76
78
77
- yield message
79
+ if block_given?
80
+ yield message
81
+ else
82
+ return message
83
+ end
78
84
end
79
85
end
80
86
end
Original file line number Diff line number Diff line change 13
13
let ( :notify_socket ) { server . path }
14
14
let ( :client ) { subject ::Socket . new ( notify_socket ) }
15
15
16
+ it "can send and receive messages" do
17
+ context = server . bind
18
+
19
+ client . send ( true : true , false : false , hello : "world" )
20
+
21
+ message = context . receive
22
+
23
+ expect ( message ) . to be == { true : true , false : false , hello : "world" }
24
+ end
25
+
16
26
with "#ready!" do
17
27
it "should send message" do
18
28
begin
31
41
end
32
42
end
33
43
34
- expect ( messages . last ) . to have_keys ( ready : be == true )
44
+ expect ( messages . last ) . to have_keys (
45
+ ready : be == true
46
+ )
35
47
ensure
36
48
context &.close
37
49
Process . wait ( pid ) if pid
38
50
end
39
51
end
40
52
end
53
+
54
+ with "#stopping!" do
55
+ it "sends stopping message" do
56
+ context = server . bind
57
+
58
+ client . stopping!
59
+
60
+ message = context . receive
61
+
62
+ expect ( message ) . to have_keys (
63
+ stopping : be == true
64
+ )
65
+ end
66
+ end
67
+
68
+ with "#error!" do
69
+ it "sends error message" do
70
+ context = server . bind
71
+
72
+ client . error! ( "Boom!" )
73
+
74
+ message = context . receive
75
+
76
+ expect ( message ) . to have_keys (
77
+ status : be == "Boom!" ,
78
+ errno : be == -1 ,
79
+ )
80
+ end
81
+ end
41
82
end if Async ::Container . fork?
You can’t perform that action at this time.
0 commit comments