Module | DRb::DRbServer::InvokeMethod18Mixin |
In: |
lib/drb/invokemethod.rb
|
# File lib/drb/invokemethod.rb, line 6 6: def block_yield(x) 7: if x.size == 1 && x[0].class == Array 8: x[0] = DRbArray.new(x[0]) 9: end 10: block_value = @block.call(*x) 11: end
# File lib/drb/invokemethod.rb, line 13 13: def perform_with_block 14: @obj.__send__(@msg_id, *@argv) do |*x| 15: jump_error = nil 16: begin 17: block_value = block_yield(x) 18: rescue LocalJumpError 19: jump_error = $! 20: end 21: if jump_error 22: case jump_error.reason 23: when :retry 24: retry 25: when :break 26: break(jump_error.exit_value) 27: else 28: raise jump_error 29: end 30: end 31: block_value 32: end 33: end