class PunditNamespaces::NamespacedPolicyFinder
Attributes
namespace[R]
Public Class Methods
new(object, namespace = nil)
click to toggle source
Calls superclass method
# File lib/pundit_namespaces/namespaced_policy_finder.rb, line 7 def initialize(object, namespace = nil) super(object) @namespace = namespace end
Private Instance Methods
base_policy()
click to toggle source
# File lib/pundit_namespaces/namespaced_policy_finder.rb, line 13 def base_policy return nil if object.nil? klass = name_from_method(object) return klass if klass klass = name_from_model_name(object) || name_from_class(object) || name_from_symbol(object) || name_from_array(object) || name_from_object(object) "#{klass}#{Pundit::SUFFIX}" end
find(_object)
click to toggle source
# File lib/pundit_namespaces/namespaced_policy_finder.rb, line 64 def find(_object) [namespace, base_policy].compact.flatten.join('::') end
name_from_array(object)
click to toggle source
# File lib/pundit_namespaces/namespaced_policy_finder.rb, line 55 def name_from_array(object) return nil unless object.is_a?(Array) object.join('/').camelize end
name_from_class(object)
click to toggle source
# File lib/pundit_namespaces/namespaced_policy_finder.rb, line 45 def name_from_class(object) return nil unless object.is_a?(Class) object.name end
name_from_method(object)
click to toggle source
# File lib/pundit_namespaces/namespaced_policy_finder.rb, line 25 def name_from_method(object) if object.respond_to?(:policy_class) object.policy_class elsif object.class.respond_to?(:policy_class) object.class.policy_class else nil end end
name_from_model_name(object)
click to toggle source
# File lib/pundit_namespaces/namespaced_policy_finder.rb, line 35 def name_from_model_name(object) if object.respond_to?(:model_name) object.model_name elsif object.class.respond_to?(:model_name) object.class.model_name else nil end end
name_from_object(object)
click to toggle source
# File lib/pundit_namespaces/namespaced_policy_finder.rb, line 60 def name_from_object(object) name_from_class(object.class) end
name_from_symbol(object)
click to toggle source
# File lib/pundit_namespaces/namespaced_policy_finder.rb, line 50 def name_from_symbol(object) return nil unless object.is_a?(Symbol) object.to_s.camelize end