Module: Actor

Defined in:
lib/actor/actor.rb,
lib/actor/build.rb,
lib/actor/start.rb,
lib/actor/controls.rb,
lib/actor/messages.rb,
lib/actor/supervisor.rb,
lib/actor/module/start.rb,
lib/actor/module/digest.rb,
lib/actor/messaging/read.rb,
lib/actor/messaging/send.rb,
lib/actor/module/handler.rb,
lib/actor/messaging/queue.rb,
lib/actor/module/run_loop.rb,
lib/actor/messaging/address.rb,
lib/actor/messaging/message.rb,
lib/actor/messaging/publish.rb,
lib/actor/module/dependencies.rb,
lib/actor/supervisor/observer.rb,
lib/actor/module/handler/macro.rb,
lib/actor/module/suspend_resume.rb,
lib/actor/supervisor/assertions.rb,
lib/actor/messaging/address/none.rb,
lib/actor/messaging/message/name.rb,
lib/actor/supervisor/address/get.rb,
lib/actor/supervisor/address/put.rb,
lib/actor/messaging/read/assertions.rb,
lib/actor/messaging/read/dependency.rb,
lib/actor/messaging/read/substitute.rb,
lib/actor/messaging/send/dependency.rb,
lib/actor/messaging/send/substitute.rb,
lib/actor/module/include_assertions.rb,
lib/actor/messaging/address/controls.rb,
lib/actor/messaging/queue/substitute.rb,
lib/actor/module/handler/method_name.rb,
lib/actor/supervisor/address/registry.rb,
lib/actor/messaging/address/dependency.rb,
lib/actor/messaging/address/substitute.rb,
lib/actor/messaging/publish/assertions.rb,
lib/actor/messaging/publish/dependency.rb,
lib/actor/messaging/publish/substitute.rb,
lib/actor/module/suspend_resume/handle.rb,
lib/actor/module/dependencies/assertions.rb,
lib/actor/module/suspend_resume/controls.rb,
lib/actor/module/suspend_resume/configure.rb,
lib/actor/module/handler/send_next_message.rb,
lib/actor/module/suspend_resume/assertions.rb,
lib/actor/module/suspend_resume/initialize.rb

Defined Under Namespace

Modules: Controls, Messages, Messaging, Module Classes: Build, Start, Supervisor

Class Method Summary collapse

Class Method Details

.included(cls) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/actor/actor.rb', line 2

def self.included cls
  # Actor can be included in the main object (TOPLEVEL_BINDING.receiver) in
  # order to bring the constants contained in within the Actor namespace to
  # the top level. When we do so, it is necessary to prevent the actual mixin
  # from altering the main object.
  return if cls.eql? Object

  cls.class_exec do
    extend Module::Start
    include Module::Dependencies
    include Module::Digest
    include Module::Handler
    include Module::Handler::SendNextMessage
    include Module::RunLoop
    include Module::SuspendResume
  end
end