Method: IIPolicy::Controller#policy

Defined in:
lib/ii_policy/controller.rb

#policy(item, context = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/ii_policy/controller.rb', line 11

def policy(item, context = {})
  if item.is_a?(Class) && item < IIPolicy::Base
    item.new(policy_context.merge(context))
  else
    klass = IIPolicy::Base.lookup(item)
    raise IIPolicy::Error.new("could not find policy for #{item}") unless klass
    klass.new(policy_context.merge(context.merge(item: item)))
  end
end