Class: Actor::Router
- Inherits:
-
Object
show all
- Includes:
- Actor
- Defined in:
- lib/actor/router.rb
Defined Under Namespace
Modules: Assertions
Classes: AddRoute, RemoveRoute
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Actor
included
Constructor Details
#initialize ⇒ Router
Returns a new instance of Router.
8
9
10
11
12
|
# File 'lib/actor/router.rb', line 8
def initialize
@routes = Hash.new do |hash, input|
hash[input] = Set.new
end
end
|
Instance Attribute Details
#kernel ⇒ Object
81
82
83
|
# File 'lib/actor/router.rb', line 81
def kernel
@kernel ||= Substitutes::Kernel.new
end
|
#routes ⇒ Object
Returns the value of attribute routes.
6
7
8
|
# File 'lib/actor/router.rb', line 6
def routes
@routes
end
|
Instance Method Details
#add(reader, output_address) ⇒ Object
51
52
53
|
# File 'lib/actor/router.rb', line 51
def add reader, output_address
routes[reader] << output_address
end
|
77
78
79
|
# File 'lib/actor/router.rb', line 77
def configure
self.kernel = Kernel
end
|
#remove(reader, output_address) ⇒ Object
55
56
57
|
# File 'lib/actor/router.rb', line 55
def remove reader, output_address
routes[reader].delete output_address
end
|
#route_messages ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/actor/router.rb', line 59
def route_messages
routed_messages = false
routes.each do |input_reader, outputs|
msg = input_reader.(wait: false)
next unless msg
routed_messages = true
outputs.each do |output|
writer.(msg, output)
end
end
routed_messages
end
|