ntl-actor 0.5.0 → 0.6.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
  SHA1:
3
- metadata.gz: e81baca90d8dfc0b1138c86c5d447e746ee42b64
4
- data.tar.gz: 07da40ca6364e24f1c3007b044736ca9a86e3cf3
3
+ metadata.gz: 0321824bce5563fba2c75159613fc5af83d1d703
4
+ data.tar.gz: dc146b845bb15dc17d0179cc978f596968caabbb
5
5
  SHA512:
6
- metadata.gz: 3e20176f4addb6bed555fadd4375104322866effb7425ad71e99db449048f620e7f87f3c6bb09dd893839bff1aa67ca73c27a69bd28c648db57d006f1041d3c3
7
- data.tar.gz: 9f1b7a7008b80e475679154c840121a4dc212066422aca82f1d2907adaec6f2e841ad504139d06e3e436e36c5fc926e8d5f8b1e85943ed16d3733c135b58370f
6
+ metadata.gz: 557a45d8a9f8b52ac669c7fe9f8a35f9b7ed78fe38a921d6931c54651b121fe39aae9abf8cd6f8512d06c465bc0a08e78cf595e732ac5507961fc346c24a9e64
7
+ data.tar.gz: 41c697b67ac2eafdebbf35d13fca2a8e0ad46ad0fdb6f0160c18a887e42f87c299f6bfe20a279bcbb7f03d7dd9650d0c3e6101f7a2d03d69dee751683e323fc3
@@ -40,6 +40,12 @@ module Actor
40
40
  class Stops
41
41
  include ::Actor
42
42
 
43
+ def self.example
44
+ instance = new
45
+ instance.reader.add_message Messages::Start.new
46
+ instance
47
+ end
48
+
43
49
  handle :start do
44
50
  @stopped = true
45
51
 
@@ -51,6 +57,24 @@ module Actor
51
57
  end
52
58
  end
53
59
 
60
+ class Crashes
61
+ include ::Actor
62
+
63
+ def self.example
64
+ instance = new
65
+ instance.reader.add_message Messages::Start.new
66
+ instance
67
+ end
68
+
69
+ handle :start do
70
+ raise error
71
+ end
72
+
73
+ def error
74
+ @error ||= Error.example
75
+ end
76
+ end
77
+
54
78
  class Singleton
55
79
  include ::Actor
56
80
 
@@ -2,13 +2,7 @@ module Actor
2
2
  module Controls
3
3
  module Error
4
4
  def self.example
5
- instance_eval <<~RUBY, '/path/to/some_file.rb', 1
6
- def method_1; raise ::Actor::Controls::Error::Example; end
7
- def method_2; method_1; end
8
- method_2
9
- RUBY
10
- rescue Example => error
11
- return error
5
+ Example.new
12
6
  end
13
7
 
14
8
  Example = Class.new StandardError
@@ -26,6 +26,14 @@ module Actor
26
26
  Messages::ActorStarted.new actor_address
27
27
  end
28
28
  end
29
+
30
+ module ActorCrashed
31
+ def self.example error=nil
32
+ error ||= Error.example
33
+
34
+ Messages::ActorCrashed.new error
35
+ end
36
+ end
29
37
  end
30
38
  end
31
39
  end
@@ -8,6 +8,10 @@ module Actor
8
8
  include Messaging::Message
9
9
  end
10
10
 
11
+ ActorCrashed = Struct.new :error do
12
+ include Messaging::Message
13
+ end
14
+
11
15
  class Stop
12
16
  include Messaging::Message
13
17
  end
data/lib/actor/start.rb CHANGED
@@ -29,7 +29,12 @@ module Actor
29
29
  writer.(actor_started, supervisor_address)
30
30
 
31
31
  thread = thread_class.new do
32
- actor.start
32
+ begin
33
+ actor.start
34
+ rescue => error
35
+ actor_crashed = Messages::ActorCrashed.new error
36
+ writer.(actor_crashed, supervisor_address)
37
+ end
33
38
  end
34
39
 
35
40
  thread.name = actor.class.name
@@ -88,7 +88,5 @@ module Actor
88
88
  def thread_group
89
89
  @thread_group ||= Substitutes::ThreadGroup.new
90
90
  end
91
-
92
- ActorCrashed = Struct.new :error
93
91
  end
94
92
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ntl-actor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Ladd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-20 00:00:00.000000000 Z
11
+ date: 2016-10-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Implementation of actor pattern for ruby designed for simplicity and
14
14
  frugality