In Files

  • drb/invokemethod.rb

DRb::DRbServer::InvokeMethod18Mixin

Public Instance Methods

block_yield(x) click to toggle source
 
               # File drb/invokemethod.rb, line 6
def block_yield(x)
  if x.size == 1 && x[0].class == Array
    x[0] = DRbArray.new(x[0])
  end
  block_value = @block.call(*x)
end
            
perform_with_block() click to toggle source
 
               # File drb/invokemethod.rb, line 13
def perform_with_block
  @obj.__send__(@msg_id, *@argv) do |*x|
    jump_error = nil
    begin
      block_value = block_yield(x)
    rescue LocalJumpError
      jump_error = $!
    end
    if jump_error
      case jump_error.reason
      when :retry
        retry
      when :break
        break(jump_error.exit_value)
      else
        raise jump_error
      end
    end
    block_value
  end
end