ntl-actor 0.6.2 → 1.0.0.pre1
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 +4 -4
- data/lib/actor.rb +45 -19
- data/lib/actor/actor.rb +12 -132
- data/lib/actor/build.rb +36 -0
- data/lib/actor/controls.rb +7 -7
- data/lib/actor/messages.rb +20 -4
- data/lib/actor/messaging/address.rb +26 -0
- data/lib/actor/messaging/address/controls.rb +11 -0
- data/lib/actor/messaging/address/dependency.rb +13 -0
- data/lib/actor/messaging/address/none.rb +33 -0
- data/lib/actor/messaging/message.rb +39 -1
- data/lib/actor/messaging/message/name.rb +33 -0
- data/lib/actor/messaging/publisher.rb +39 -0
- data/lib/actor/messaging/publisher/assertions.rb +11 -0
- data/lib/actor/messaging/publisher/dependency.rb +13 -0
- data/lib/actor/messaging/publisher/substitute.rb +62 -0
- data/lib/actor/messaging/queue.rb +21 -0
- data/lib/actor/messaging/queue/substitute.rb +53 -0
- data/lib/actor/messaging/reader.rb +32 -0
- data/lib/actor/messaging/reader/assertions.rb +25 -0
- data/lib/actor/messaging/reader/dependency.rb +13 -0
- data/lib/actor/messaging/reader/substitute.rb +31 -0
- data/lib/actor/messaging/writer.rb +28 -0
- data/lib/actor/messaging/writer/dependency.rb +13 -0
- data/lib/actor/messaging/writer/substitute.rb +45 -0
- data/lib/actor/module/dependencies.rb +30 -0
- data/lib/actor/module/dependencies/assertions.rb +23 -0
- data/lib/actor/module/handler.rb +31 -0
- data/lib/actor/module/handler/macro.rb +13 -0
- data/lib/actor/module/handler/method_name.rb +13 -0
- data/lib/actor/module/include_assertions.rb +18 -0
- data/lib/actor/module/run_loop.rb +19 -0
- data/lib/actor/module/start.rb +27 -0
- data/lib/actor/module/suspend_resume.rb +36 -0
- data/lib/actor/module/suspend_resume/assertions.rb +26 -0
- data/lib/actor/module/suspend_resume/configure.rb +13 -0
- data/lib/actor/module/suspend_resume/controls.rb +17 -0
- data/lib/actor/module/suspend_resume/handle.rb +17 -0
- data/lib/actor/module/suspend_resume/initialize.rb +13 -0
- data/lib/actor/start.rb +34 -34
- data/lib/actor/supervisor.rb +60 -71
- data/lib/actor/supervisor/address/get.rb +15 -0
- data/lib/actor/supervisor/address/put.rb +13 -0
- data/lib/actor/supervisor/address/registry.rb +7 -0
- data/lib/actor/supervisor/assertions.rb +20 -0
- metadata +42 -28
- data/lib/actor/address.rb +0 -18
- data/lib/actor/controls/actor.rb +0 -89
- data/lib/actor/controls/address.rb +0 -48
- data/lib/actor/controls/error.rb +0 -11
- data/lib/actor/controls/message.rb +0 -39
- data/lib/actor/controls/message/attribute.rb +0 -17
- data/lib/actor/controls/thread.rb +0 -9
- data/lib/actor/controls/uuid.rb +0 -15
- data/lib/actor/destructure.rb +0 -23
- data/lib/actor/duration.rb +0 -7
- data/lib/actor/future.rb +0 -38
- data/lib/actor/handle_macro.rb +0 -37
- data/lib/actor/messaging/read.rb +0 -54
- data/lib/actor/messaging/read/substitute.rb +0 -33
- data/lib/actor/messaging/write.rb +0 -26
- data/lib/actor/messaging/write/substitute.rb +0 -39
- data/lib/actor/observers.rb +0 -45
- data/lib/actor/router.rb +0 -94
- data/lib/actor/stream.rb +0 -36
- data/lib/actor/substitutes/kernel.rb +0 -23
- data/lib/actor/substitutes/thread.rb +0 -39
- data/lib/actor/substitutes/thread_group.rb +0 -26
@@ -0,0 +1,20 @@
|
|
1
|
+
module Actor
|
2
|
+
class Supervisor
|
3
|
+
module Assertions
|
4
|
+
def self.extended supervisor
|
5
|
+
supervisor.instance_exec do
|
6
|
+
assertions_module = publisher.class::Assertions
|
7
|
+
publisher.extend assertions_module
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def registered_actor? actor
|
12
|
+
publisher.registered? actor.address
|
13
|
+
end
|
14
|
+
|
15
|
+
def unregistered_actor? actor
|
16
|
+
publisher.unregistered? actor.address
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ntl-actor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.pre1
|
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-11-
|
11
|
+
date: 2016-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: Implementation of actor pattern for ruby
|
14
|
-
frugality
|
13
|
+
description: Implementation of actor pattern for ruby
|
15
14
|
email: nathanladd+github@gmail.com
|
16
15
|
executables: []
|
17
16
|
extensions: []
|
@@ -19,33 +18,48 @@ extra_rdoc_files: []
|
|
19
18
|
files:
|
20
19
|
- lib/actor.rb
|
21
20
|
- lib/actor/actor.rb
|
22
|
-
- lib/actor/
|
21
|
+
- lib/actor/build.rb
|
23
22
|
- lib/actor/controls.rb
|
24
|
-
- lib/actor/controls/actor.rb
|
25
|
-
- lib/actor/controls/address.rb
|
26
|
-
- lib/actor/controls/error.rb
|
27
|
-
- lib/actor/controls/message.rb
|
28
|
-
- lib/actor/controls/message/attribute.rb
|
29
|
-
- lib/actor/controls/thread.rb
|
30
|
-
- lib/actor/controls/uuid.rb
|
31
|
-
- lib/actor/destructure.rb
|
32
|
-
- lib/actor/duration.rb
|
33
|
-
- lib/actor/future.rb
|
34
|
-
- lib/actor/handle_macro.rb
|
35
23
|
- lib/actor/messages.rb
|
24
|
+
- lib/actor/messaging/address.rb
|
25
|
+
- lib/actor/messaging/address/controls.rb
|
26
|
+
- lib/actor/messaging/address/dependency.rb
|
27
|
+
- lib/actor/messaging/address/none.rb
|
36
28
|
- lib/actor/messaging/message.rb
|
37
|
-
- lib/actor/messaging/
|
38
|
-
- lib/actor/messaging/
|
39
|
-
- lib/actor/messaging/
|
40
|
-
- lib/actor/messaging/
|
41
|
-
- lib/actor/
|
42
|
-
- lib/actor/
|
29
|
+
- lib/actor/messaging/message/name.rb
|
30
|
+
- lib/actor/messaging/publisher.rb
|
31
|
+
- lib/actor/messaging/publisher/assertions.rb
|
32
|
+
- lib/actor/messaging/publisher/dependency.rb
|
33
|
+
- lib/actor/messaging/publisher/substitute.rb
|
34
|
+
- lib/actor/messaging/queue.rb
|
35
|
+
- lib/actor/messaging/queue/substitute.rb
|
36
|
+
- lib/actor/messaging/reader.rb
|
37
|
+
- lib/actor/messaging/reader/assertions.rb
|
38
|
+
- lib/actor/messaging/reader/dependency.rb
|
39
|
+
- lib/actor/messaging/reader/substitute.rb
|
40
|
+
- lib/actor/messaging/writer.rb
|
41
|
+
- lib/actor/messaging/writer/dependency.rb
|
42
|
+
- lib/actor/messaging/writer/substitute.rb
|
43
|
+
- lib/actor/module/dependencies.rb
|
44
|
+
- lib/actor/module/dependencies/assertions.rb
|
45
|
+
- lib/actor/module/handler.rb
|
46
|
+
- lib/actor/module/handler/macro.rb
|
47
|
+
- lib/actor/module/handler/method_name.rb
|
48
|
+
- lib/actor/module/include_assertions.rb
|
49
|
+
- lib/actor/module/run_loop.rb
|
50
|
+
- lib/actor/module/start.rb
|
51
|
+
- lib/actor/module/suspend_resume.rb
|
52
|
+
- lib/actor/module/suspend_resume/assertions.rb
|
53
|
+
- lib/actor/module/suspend_resume/configure.rb
|
54
|
+
- lib/actor/module/suspend_resume/controls.rb
|
55
|
+
- lib/actor/module/suspend_resume/handle.rb
|
56
|
+
- lib/actor/module/suspend_resume/initialize.rb
|
43
57
|
- lib/actor/start.rb
|
44
|
-
- lib/actor/stream.rb
|
45
|
-
- lib/actor/substitutes/kernel.rb
|
46
|
-
- lib/actor/substitutes/thread.rb
|
47
|
-
- lib/actor/substitutes/thread_group.rb
|
48
58
|
- lib/actor/supervisor.rb
|
59
|
+
- lib/actor/supervisor/address/get.rb
|
60
|
+
- lib/actor/supervisor/address/put.rb
|
61
|
+
- lib/actor/supervisor/address/registry.rb
|
62
|
+
- lib/actor/supervisor/assertions.rb
|
49
63
|
homepage: https://github.com/ntl/actor
|
50
64
|
licenses:
|
51
65
|
- MIT
|
@@ -62,9 +76,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
62
76
|
version: '0'
|
63
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
78
|
requirements:
|
65
|
-
- - "
|
79
|
+
- - ">"
|
66
80
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
81
|
+
version: 1.3.1
|
68
82
|
requirements: []
|
69
83
|
rubyforge_project:
|
70
84
|
rubygems_version: 2.6.6
|
data/lib/actor/address.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
module Actor
|
2
|
-
Address = Struct.new :stream, :uuid do
|
3
|
-
def self.build stream=nil
|
4
|
-
stream ||= Stream.new
|
5
|
-
|
6
|
-
uuid = SecureRandom.uuid
|
7
|
-
|
8
|
-
instance = new stream, uuid
|
9
|
-
instance
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
class Address
|
14
|
-
NoneClass = Class.new Address
|
15
|
-
|
16
|
-
None = NoneClass.new Stream::Null, 'no-stream'
|
17
|
-
end
|
18
|
-
end
|
data/lib/actor/controls/actor.rb
DELETED
@@ -1,89 +0,0 @@
|
|
1
|
-
module Actor
|
2
|
-
module Controls
|
3
|
-
module Actor
|
4
|
-
def self.example
|
5
|
-
Example.new
|
6
|
-
end
|
7
|
-
|
8
|
-
class Example
|
9
|
-
include ::Actor
|
10
|
-
|
11
|
-
def initialize
|
12
|
-
@messages = []
|
13
|
-
end
|
14
|
-
|
15
|
-
handle Message::Example do |message|
|
16
|
-
@messages << message
|
17
|
-
nil
|
18
|
-
end
|
19
|
-
|
20
|
-
def handled? message
|
21
|
-
@messages.include? message
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
class Continues
|
26
|
-
include ::Actor
|
27
|
-
|
28
|
-
def handle message
|
29
|
-
if message == Message.example
|
30
|
-
Message::Other.example
|
31
|
-
else
|
32
|
-
Message.example
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
handle Message::Example do
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
class Stops
|
41
|
-
include ::Actor
|
42
|
-
|
43
|
-
def self.example
|
44
|
-
instance = new
|
45
|
-
instance.reader.add_message Messages::Start.new
|
46
|
-
instance
|
47
|
-
end
|
48
|
-
|
49
|
-
handle :start do
|
50
|
-
@stopped = true
|
51
|
-
|
52
|
-
raise StopIteration
|
53
|
-
end
|
54
|
-
|
55
|
-
def stopped?
|
56
|
-
@stopped ? true : false
|
57
|
-
end
|
58
|
-
end
|
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
|
-
|
78
|
-
class Singleton
|
79
|
-
include ::Actor
|
80
|
-
|
81
|
-
def self.define &block
|
82
|
-
cls = Class.new Singleton
|
83
|
-
cls.class_exec &block if block
|
84
|
-
cls.new
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module Actor
|
2
|
-
module Controls
|
3
|
-
module Address
|
4
|
-
def self.example id_offset=nil, stream: nil
|
5
|
-
stream ||= Stream.new
|
6
|
-
|
7
|
-
uuid = UUID.example id_offset
|
8
|
-
|
9
|
-
::Actor::Address.new stream, uuid
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.pair id_offset=nil
|
13
|
-
stream = Stream.new
|
14
|
-
|
15
|
-
queue = Queue.new
|
16
|
-
stream.add_queue queue
|
17
|
-
|
18
|
-
address = example id_offset, stream: stream
|
19
|
-
|
20
|
-
return address, queue
|
21
|
-
end
|
22
|
-
|
23
|
-
module Actor
|
24
|
-
def self.example
|
25
|
-
Address.example 0
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
module Supervisor
|
30
|
-
def self.example
|
31
|
-
Address.example 1
|
32
|
-
end
|
33
|
-
|
34
|
-
module Broadcast
|
35
|
-
def self.example
|
36
|
-
Address.example 2
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
module Router
|
42
|
-
def self.example
|
43
|
-
Address.example 3
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
data/lib/actor/controls/error.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
module Actor
|
2
|
-
module Controls
|
3
|
-
module Message
|
4
|
-
def self.example
|
5
|
-
attribute = Attribute.example
|
6
|
-
|
7
|
-
Example.new attribute
|
8
|
-
end
|
9
|
-
|
10
|
-
module Other
|
11
|
-
def self.example
|
12
|
-
attribute = Attribute::Other.example
|
13
|
-
|
14
|
-
Example.new attribute
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
Example = Struct.new :some_attribute do
|
19
|
-
include Messaging::Message
|
20
|
-
end
|
21
|
-
|
22
|
-
module ActorStarted
|
23
|
-
def self.example
|
24
|
-
actor_address = Address::Actor.example
|
25
|
-
|
26
|
-
Messages::ActorStarted.new actor_address
|
27
|
-
end
|
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
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
data/lib/actor/controls/uuid.rb
DELETED
data/lib/actor/destructure.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module Actor
|
2
|
-
module Destructure
|
3
|
-
def self.call primary_return_value, include=nil, **values
|
4
|
-
include = Array(include)
|
5
|
-
|
6
|
-
if include.empty?
|
7
|
-
primary_return_value
|
8
|
-
else
|
9
|
-
return_values = include.map do |return_value_name|
|
10
|
-
begin
|
11
|
-
values.fetch return_value_name
|
12
|
-
rescue KeyError
|
13
|
-
raise Error, "Invalid return value to include `#{return_value_name.inspect}'"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
return primary_return_value, *return_values
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
Error = Class.new StandardError
|
22
|
-
end
|
23
|
-
end
|