class Concurrent::Actor::Root
implements the root actor
Public Class Methods
new()
click to toggle source
# File lib/concurrent/actor/root.rb, line 6 def initialize # noinspection RubyArgCount @dead_letter_router = Core.new(parent: reference, class: DefaultDeadLetterHandler, supervise: true, name: :default_dead_letter_handler).reference end
Public Instance Methods
behaviour_definition()
click to toggle source
# File lib/concurrent/actor/root.rb, line 30 def behaviour_definition [*Behaviour.base(:just_log), *Behaviour.supervising, *Behaviour.user_messages] end
dead_letter_routing()
click to toggle source
# File lib/concurrent/actor/root.rb, line 26 def dead_letter_routing @dead_letter_router end
on_message(message)
click to toggle source
to allow spawning of new actors, spawn needs to be called inside the parent Actor
# File lib/concurrent/actor/root.rb, line 15 def on_message(message) case when message.is_a?(::Array) && message.first == :spawn Actor.spawn message[1], &message[2] when message == :dead_letter_routing @dead_letter_router else # ignore end end