Class: PipeRpc::BasicInterface

Inherits:
BasicObject
Defined in:
lib/pipe_rpc/basic_interface.rb

Direct Known Subclasses

Client, ClientWrapper, Server

Class Method Summary collapse

Class Method Details

.add_instance_evalObject



24
25
26
# File 'lib/pipe_rpc/basic_interface.rb', line 24

def add_instance_eval
  __send__(:remove_method, :instance_eval)
end

.const_missing(name) ⇒ Object



4
5
6
# File 'lib/pipe_rpc/basic_interface.rb', line 4

def const_missing(name)
  ::Object.const_get(name)
end

.instance_eval_for(object, *args, &block) ⇒ Object



8
9
10
11
12
13
# File 'lib/pipe_rpc/basic_interface.rb', line 8

def instance_eval_for(object, *args, &block)
  BasicInterface.add_instance_eval
  object.instance_eval(*args, &block)
ensure
  BasicInterface.remove_instance_eval
end

.remove_instance_evalObject



15
16
17
18
19
20
21
22
# File 'lib/pipe_rpc/basic_interface.rb', line 15

def remove_instance_eval
  class_eval do
    def instance_eval(*args)
      caller = (Kernel.respond_to? :caller) ? [Kernel.caller(1)] : nil
      Kernel.raise ::NoMethodError, "undefined method `instance_eval'", *caller
    end
  end
end