class Logux::PolicyCaller

Attributes

action[R]
meta[R]

Public Class Methods

new(action:, meta:) click to toggle source
# File lib/logux/policy_caller.rb, line 11
def initialize(action:, meta:)
  @action = action
  @meta = meta
end

Public Instance Methods

call!() click to toggle source
# File lib/logux/policy_caller.rb, line 16
def call!
  logger.debug('Searching policy for Logux action:' \
               " #{action}, meta: #{meta}")
  policy.public_send("#{action.action_type}?")
rescue Logux::UnknownActionError, Logux::UnknownChannelError => e
  raise e if configuration.verify_authorized

  logger.warn(e)
end

Private Instance Methods

class_finder() click to toggle source
# File lib/logux/policy_caller.rb, line 28
def class_finder
  @class_finder ||= Logux::ClassFinder.new(action: action, meta: meta)
end
policy() click to toggle source
# File lib/logux/policy_caller.rb, line 32
def policy
  class_finder.find_policy_class.new(action: action, meta: meta)
end