class Pundit::PolicyFinder
Attributes
object[R]
Public Class Methods
new(object)
click to toggle source
# File lib/pundit/policy_finder.rb, line 5 def initialize(object) @object = object end
Public Instance Methods
policy()
click to toggle source
# File lib/pundit/policy_finder.rb, line 15 def policy klass = find klass = klass.constantize if klass.is_a?(String) klass rescue NameError nil end
policy!()
click to toggle source
# File lib/pundit/policy_finder.rb, line 28 def policy! raise NotDefinedError, "unable to find policy of nil" if object.nil? policy or raise NotDefinedError, "unable to find policy `#{find}` for `#{object.inspect}`" end
scope()
click to toggle source
# File lib/pundit/policy_finder.rb, line 9 def scope policy::Scope if policy rescue NameError nil end
scope!()
click to toggle source
# File lib/pundit/policy_finder.rb, line 23 def scope! raise NotDefinedError, "unable to find policy scope of nil" if object.nil? scope or raise NotDefinedError, "unable to find scope `#{find}::Scope` for `#{object.inspect}`" end
Private Instance Methods
find()
click to toggle source
# File lib/pundit/policy_finder.rb, line 35 def find if object.nil? nil elsif object.respond_to?(:policy_class) object.policy_class elsif object.class.respond_to?(:policy_class) object.class.policy_class else klass = if object.respond_to?(:model_name) object.model_name elsif object.class.respond_to?(:model_name) object.class.model_name elsif object.is_a?(Class) object elsif object.is_a?(Symbol) object.to_s.camelize elsif object.is_a?(Array) object.join('/').camelize else object.class end "#{klass}#{SUFFIX}" end end