A proxy object returned from Celluloid::Actor.new/new_link which converts the normal Ruby method protocol into an inter-actor message protocol
# File lib/celluloid/proxies/actor_proxy.rb, line 7 def initialize(actor) @thread = actor.thread super(actor.mailbox, actor.subject.class.to_s) @sync_proxy = SyncProxy.new(@mailbox, @klass) @async_proxy = AsyncProxy.new(@mailbox, @klass) @future_proxy = FutureProxy.new(@mailbox, @klass) end
# File lib/celluloid/proxies/actor_proxy.rb, line 24 def _send_(meth, *args, &block) method_missing :__send__, meth, *args, &block end
# File lib/celluloid/proxies/actor_proxy.rb, line 58 def alive? @mailbox.alive? end
Obtain an async proxy or explicitly invoke a named async method
# File lib/celluloid/proxies/actor_proxy.rb, line 69 def async(method_name = nil, *args, &block) if method_name @async_proxy.method_missing method_name, *args, &block else @async_proxy end end
# File lib/celluloid/proxies/actor_proxy.rb, line 16 def class method_missing :__send__, :class end
Obtain a future proxy or explicitly invoke a named future method
# File lib/celluloid/proxies/actor_proxy.rb, line 78 def future(method_name = nil, *args, &block) if method_name @future_proxy.method_missing method_name, *args, &block else @future_proxy end end
# File lib/celluloid/proxies/actor_proxy.rb, line 28 def inspect method_missing :inspect rescue DeadActorError "#<Celluloid::ActorProxy(#{@klass}) dead>" end
# File lib/celluloid/proxies/actor_proxy.rb, line 38 def is_a?(klass) method_missing :is_a?, klass end
# File lib/celluloid/proxies/actor_proxy.rb, line 42 def kind_of?(klass) method_missing :kind_of?, klass end
# File lib/celluloid/proxies/actor_proxy.rb, line 54 def method(name) Method.new(self, name) end
method_missing black magic to call bang predicate methods asynchronously
# File lib/celluloid/legacy.rb, line 4 def method_missing(meth, *args, &block) # bang methods are async calls if meth.match(/!$/) Logger.deprecate("'bang method'-style async syntax is deprecated and will be removed in Celluloid 1.0." + "Call async methods with 'actor.async.method'.") unbanged_meth = meth.to_s unbanged_meth.slice!(-1, 1) async unbanged_meth, *args, &block else super end end
# File lib/celluloid/proxies/actor_proxy.rb, line 50 def methods(include_ancestors = true) method_missing :methods, include_ancestors end
# File lib/celluloid/proxies/actor_proxy.rb, line 34 def name method_missing :name end
# File lib/celluloid/proxies/actor_proxy.rb, line 46 def respond_to?(meth, include_private = false) method_missing :respond_to?, meth, include_private end
# File lib/celluloid/proxies/actor_proxy.rb, line 20 def send(meth, *args, &block) method_missing :send, meth, *args, &block end
Terminate the associated actor
# File lib/celluloid/proxies/actor_proxy.rb, line 87 def terminate terminate! Actor.join(self) nil end
Generated with the Darkfish Rdoc Generator 2.