Class: DRb::DRbServer::InvokeMethod
Do not use. This class is for internal use only.
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Instance Chain:
self,
InvokeMethod18Mixin
|
|
Inherits: | Object |
Defined in: | lib/drb/drb.rb, lib/drb/drb.rb |
Class Method Summary
- .new(drb_server, client) ⇒ InvokeMethod constructor
Instance Method Summary
- #perform
- #check_insecure_method private
- #init_with_client private
- #perform_without_block private
- #setup_message private
InvokeMethod18Mixin
- Included
Constructor Details
.new(drb_server, client) ⇒ InvokeMethod
# File 'lib/drb/drb.rb', line 1624
def initialize(drb_server, client) @drb_server = drb_server @client = client end
Instance Method Details
#check_insecure_method (private)
[ GitHub ]# File 'lib/drb/drb.rb', line 1666
def check_insecure_method @drb_server.check_insecure_method(@obj, @msg_id) end
#init_with_client (private)
[ GitHub ]# File 'lib/drb/drb.rb', line 1658
def init_with_client obj, msg, argv, block = @client.recv_request @obj = obj @msg_id = msg.intern @argv = argv @block = block end
#perform
[ GitHub ]# File 'lib/drb/drb.rb', line 1629
def perform begin ensure @result = nil @succ = false end if @block @result = perform_with_block else @result = perform_without_block end @succ = true case @result when Array if @msg_id == :to_ary @result = DRbArray.new(@result) end end return @succ, @result rescue NoMemoryError, SystemExit, SystemStackError, SecurityError raise rescue Exception @result = $! return @succ, @result end
#perform_without_block (private)
[ GitHub ]# File 'lib/drb/drb.rb', line 1675
def perform_without_block if Proc === @obj && @msg_id == :__drb_yield if @argv.size == 1 ary = @argv else ary = [@argv] end ary.collect(&@obj)[0] else @obj.__send__(@msg_id, *@argv) end end
#setup_message (private)
[ GitHub ]# File 'lib/drb/drb.rb', line 1670
def init_with_client check_insecure_method end