class ODBA::DRbWrapper

Public Class Methods

new(obj) click to toggle source
# File lib/odba/drbwrapper.rb, line 15
def initialize(obj)
  @obj = obj
end

Public Instance Methods

__wrap(obj) click to toggle source
# File lib/odba/drbwrapper.rb, line 41
def __wrap(obj)
  if(obj.is_a?(ODBA::Persistable))
    DRbWrapper.new(obj.odba_instance)
  else
    obj
  end
end
__wrappee() click to toggle source
# File lib/odba/drbwrapper.rb, line 48
def __wrappee
  @obj
end
method_missing(sym, *args) { |*collect { |arg| __wrap(arg) }| ... } click to toggle source
# File lib/odba/drbwrapper.rb, line 21
def method_missing(sym, *args)
  if(block_given?)
    res = @obj.__send__(sym, *args) { |*block_args|
      yield *block_args.collect { |arg| __wrap(arg) }
    }
    __wrap(res)
  else
    res = @obj.__send__(sym, *args)
    if(res.is_a?(Array))
      res.collect { |item| __wrap(item) }
    elsif(res.is_a?(Hash))
      res.inject({}) { |memo, (key, value)|
        memo.store(__wrap(key), __wrap(value))
        memo
      }
    else
      __wrap(res)
    end
  end
end
respond_to?(sym, *args) click to toggle source
Calls superclass method
# File lib/odba/drbwrapper.rb, line 18
def respond_to?(sym, *args)
  super || @obj.respond_to?(sym, *args)
end