123456789_123456789_123456789_123456789_123456789_

Module: DRb::DRbServer::InvokeMethod18Mixin

Do not use. This module is for internal use only.
Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: lib/drb/invokemethod.rb

Instance Method Summary

Instance Method Details

#block_yield(x)

[ GitHub ]

  
# File 'lib/drb/invokemethod.rb', line 7

def block_yield(x)
  if x.size == 1 && x[0].class == Array
    x[0] = DRbArray.new(x[0])
  end
  @block.call(*x)
end

#perform_with_block

[ GitHub ]

  
# File 'lib/drb/invokemethod.rb', line 14

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 :break
        break(jump_error.exit_value)
      else
        raise jump_error
      end
    end
    block_value
  end
end