class DeclarativePolicy::Configuration

Constants

ConfigurationError

Public Class Methods

new() click to toggle source
# File lib/declarative_policy/configuration.rb, line 7
def initialize
  @named_policies = {}
  @name_transformation = ->(name) { "#{name}Policy" }
end

Public Instance Methods

name_transformation(&block) click to toggle source
# File lib/declarative_policy/configuration.rb, line 24
def name_transformation(&block)
  @name_transformation = block
  nil
end
named_policy(name, policy = nil) click to toggle source
# File lib/declarative_policy/configuration.rb, line 12
def named_policy(name, policy = nil)
  @named_policies[name] = policy if policy

  @named_policies[name] || raise(ConfigurationError, "No #{name} policy configured")
end
nil_policy(policy = nil) click to toggle source
# File lib/declarative_policy/configuration.rb, line 18
def nil_policy(policy = nil)
  @nil_policy = policy if policy

  @nil_policy || ::DeclarativePolicy::NilPolicy
end
policy_class(domain_class_name) click to toggle source
# File lib/declarative_policy/configuration.rb, line 29
def policy_class(domain_class_name)
  return unless domain_class_name

  @name_transformation.call(domain_class_name).constantize
rescue NameError
  nil
end