class NoMoss::RoleApi

Public Instance Methods

api_methods() click to toggle source
# File lib/no_moss/role_api.rb, line 5
def api_methods
  _api_methods.dup
end
methods_missing_from(object) click to toggle source
# File lib/no_moss/role_api.rb, line 9
def methods_missing_from(object)
  _api_methods.reject{|m| object.respond_to?(m) }
end
restrict(object) click to toggle source
# File lib/no_moss/role_api.rb, line 13
def restrict(object)
  proxy_class.new(object)
end

Private Instance Methods

_api_methods() click to toggle source
# File lib/no_moss/role_api.rb, line 23
def _api_methods
  @api_methods ||= []
end
implements(*args) click to toggle source
# File lib/no_moss/role_api.rb, line 19
def implements(*args)
  _api_methods.concat args
end
proxy_class() click to toggle source
# File lib/no_moss/role_api.rb, line 43
def proxy_class
  @proxy_class ||= begin
    klass = Class.new(AbstractProxy)
    klass.def_delegators :@object, *api_methods
    const_set :Proxy, klass
    klass
  end
end