class Capataz::Proxy

Public Class Methods

new(obj, options = {}) click to toggle source
# File lib/capataz/proxy.rb, line 15
def initialize(obj, options = {})
  @obj = obj
  if (@options = options || {})[:constant] && !Capataz.allowed_constant?(obj)
    fail "Illegal access to constant #{obj}"
  end
end

Public Instance Methods

capataz_proxy?() click to toggle source
# File lib/capataz/proxy.rb, line 46
def capataz_proxy?
  true
end
capataz_slave() click to toggle source
# File lib/capataz/proxy.rb, line 50
def capataz_slave
  @obj
end
class() click to toggle source
# File lib/capataz/proxy.rb, line 54
def class
  @obj.class
end
is_a?(type) click to toggle source
# File lib/capataz/proxy.rb, line 38
def is_a?(type)
  if type.capataz_proxy?
    @obj.is_a?(type.capataz_slave)
  else
    @obj.is_a?(type)
  end
end
method(sym) click to toggle source
# File lib/capataz/proxy.rb, line 22
def method(sym)
  if Capataz.instance_response_to?(@obj, symbol)
    @obj.method(sym)
  else
    nil
  end
end
method_missing(symbol, *args, &block) click to toggle source
# File lib/capataz/proxy.rb, line 30
def method_missing(symbol, *args, &block)
  if Capataz.instance_response_to?(@obj, symbol)
    @obj.send(symbol, *args, &block)
  else
    fail NoMethodError, "undefined method #{symbol} for #{@obj}"
  end
end
respond_to?(*args) click to toggle source
# File lib/capataz/proxy.rb, line 58
def respond_to?(*args)
  Capataz.instance_response_to?(@obj, *args)
end