ntl-actor 0.6.0 → 0.6.1

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
  SHA1:
3
- metadata.gz: 0321824bce5563fba2c75159613fc5af83d1d703
4
- data.tar.gz: dc146b845bb15dc17d0179cc978f596968caabbb
3
+ metadata.gz: 067110e074ae7bb81a31423f2a096e4c17ee9009
4
+ data.tar.gz: 6b0e35af11830125b4ba65ef6f34e52f0289e8cd
5
5
  SHA512:
6
- metadata.gz: 557a45d8a9f8b52ac669c7fe9f8a35f9b7ed78fe38a921d6931c54651b121fe39aae9abf8cd6f8512d06c465bc0a08e78cf595e732ac5507961fc346c24a9e64
7
- data.tar.gz: 41c697b67ac2eafdebbf35d13fca2a8e0ad46ad0fdb6f0160c18a887e42f87c299f6bfe20a279bcbb7f03d7dd9650d0c3e6101f7a2d03d69dee751683e323fc3
6
+ metadata.gz: 092fd9158294ef024fd0332730b5c6ad20ee602e301c436436a4c70c72068ad01d451fcb1d68c070a3c01a87a59a365b13d1df8bbbe3e3959f934bd9f070d1fd
7
+ data.tar.gz: 3a58c4dfab83e50ff8d7ef5704a20b8093dca2abb88f092cc1139a91a260dad80ab8da1a28d6e2743b466de2ef787ea2628ab25396e7c75b8e3d53bc007752a4
data/lib/actor/actor.rb CHANGED
@@ -115,16 +115,9 @@ module Actor
115
115
  end
116
116
 
117
117
  if keyword_arguments.empty?
118
- instance = constructor.(
119
- *positional_arguments,
120
- &block
121
- )
118
+ instance = constructor.(*positional_arguments, &block)
122
119
  else
123
- instance = constructor.(
124
- *positional_arguments,
125
- **keyword_arguments,
126
- &block
127
- )
120
+ instance = constructor.(*positional_arguments, **keyword_arguments, &block)
128
121
  end
129
122
 
130
123
  instance.address = address
@@ -18,10 +18,31 @@ module Actor
18
18
  def run &assembly
19
19
  self.address = Address.build
20
20
 
21
- _, thread = start address: address, include: %i(thread), &assembly
21
+ _, thread = start include: %i(thread), &assembly
22
22
 
23
23
  thread.join
24
24
  end
25
+
26
+ def build &assembly
27
+ instance = new &assembly
28
+ instance.configure
29
+ instance
30
+ end
31
+
32
+ def start include: nil, &assembly
33
+ instance = build &assembly
34
+
35
+ start = Messages::Start.new
36
+ instance.writer.(start, address)
37
+
38
+ thread = Thread.new do
39
+ instance.start
40
+ end
41
+
42
+ thread.name = "Supervisor"
43
+
44
+ Destructure.(address, include, { :thread => thread, :actor => instance })
45
+ end
25
46
  end
26
47
 
27
48
  handle :start do
@@ -35,6 +56,8 @@ module Actor
35
56
 
36
57
  handle :continue do
37
58
  if actor_threads.empty?
59
+ raise error if error
60
+
38
61
  :stop
39
62
  else
40
63
  :continue
@@ -75,6 +98,7 @@ module Actor
75
98
  self.broadcast_address = Address.build
76
99
  self.router_address = Router.start
77
100
  self.thread_group = ThreadGroup.new
101
+ self.address = self.class.address
78
102
  end
79
103
 
80
104
  def broadcast_address
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ntl-actor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Ladd