class Policy::Proxy
Public Class Methods
new(policy)
click to toggle source
# File lib/clean-policy/proxy.rb, line 3 def initialize policy @policy = policy end
Public Instance Methods
method_missing(name, *args) { || ... }
click to toggle source
# File lib/clean-policy/proxy.rb, line 7 def method_missing name, *args, &block name = name.to_s.sub(/(.)$/, '') action = $1 @policy.can?(name, *args) @policy.model || true rescue Policy::Error => error if block_given? yield return nil end if action == '!' raise error elsif action == '?' nil else raise ArgumentError.new('Bad policy method %s' % name) end end