module Shaf::Helpers

Public Instance Methods

authorize(action, resource = nil) click to toggle source
# File lib/shaf/extensions/authorize.rb, line 21
def authorize(action, resource = nil)
  policy = policy(resource)
  raise Authorize::NoPolicyError unless policy

  method = __method_for(action)
  return policy.public_send(method) if policy.respond_to? method

  raise Authorize::MissingPolicyAction,
    "#{policy.class} does not implement method #{method}"
end
authorize!(action, resource = nil) click to toggle source
# File lib/shaf/extensions/authorize.rb, line 32
def authorize!(action, resource = nil)
  authorize(action, resource) or raise Authorize::PolicyViolationError
end
log() click to toggle source
# File lib/shaf/extensions/log.rb, line 15
def log
  self.class.log
end

Private Instance Methods

__method_for(action) click to toggle source
# File lib/shaf/extensions/authorize.rb, line 43
def __method_for(action)
  return action if action.to_s.end_with? '?'
  :"#{action}?"
end
policy(resource) click to toggle source
# File lib/shaf/extensions/authorize.rb, line 38
def policy(resource)
  user = current_user if respond_to? :current_user
  self.class.policy_class&.new(user, resource)
end