class Porteiro::PolicyFinder
Constants
- PolicyNotFound
Attributes
context[R]
default_policy[R]
user[R]
Public Class Methods
call(context, user, default_policy=nil)
click to toggle source
# File lib/porteiro/policy_finder.rb, line 8 def self.call(context, user, default_policy=nil) service = new(context, user, default_policy) service.call end
new(context, user, default_policy=nil)
click to toggle source
# File lib/porteiro/policy_finder.rb, line 14 def initialize(context, user, default_policy=nil) @context = context @user = user @default_policy = default_policy end
Public Instance Methods
call()
click to toggle source
# File lib/porteiro/policy_finder.rb, line 20 def call policy.new(user, context) end
controller_name()
click to toggle source
# File lib/porteiro/policy_finder.rb, line 37 def controller_name context.params[:controller].camelize end
policy()
click to toggle source
# File lib/porteiro/policy_finder.rb, line 24 def policy policy = safe_constantize(policy_class_name) if !policy && default_policy policy = safe_constantize(default_policy) end raise PolicyNotFound, "#{policy_class_name} could not be found" unless policy policy end
policy_class_name()
click to toggle source
# File lib/porteiro/policy_finder.rb, line 33 def policy_class_name [controller_name, 'Policy'].join end
Private Instance Methods
safe_constantize(name)
click to toggle source
# File lib/porteiro/policy_finder.rb, line 44 def safe_constantize(name) ::Object.const_get(name.to_s) rescue ::NameError nil end