class Celluloid::Proxy::Future

A proxy which creates future calls to an actor

Public Instance Methods

method_missing(meth, *args, &block) click to toggle source
# File lib/celluloid/proxy/future.rb, line 3
def method_missing(meth, *args, &block)
  unless @mailbox.alive?
    fail ::Celluloid::DeadActorError, "attempted to call a dead actor: #{meth}"
  end

  if block_given?
    # FIXME: nicer exception
    fail "Cannot use blocks with futures yet"
  end

  future = ::Celluloid::Future.new
  call = ::Celluloid::Call::Sync.new(future, meth, args, block)

  @mailbox << call

  future
end