Module: DRb::DRbServer::InvokeMethod18Mixin

Module | DRb::DRbServer::InvokeMethod18Mixin
In: | drb/invokemethod.rb

### Methods

block_yield perform_with_block

### Public Instance methods

block_yield(x)

[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()

[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

[Validate]