module Ivar
def self.get_policy(policy, **options)
-
(Policy)
- The policy instance
Parameters:
-
options
(Hash
) -- Options to pass to the policy constructor -
policy
(Symbol, Policy, Array
) -- The policy to get
def self.get_policy(policy, **options) return policy if policy.is_a?(Policy) # Handle the case where policy is an array with [policy_name, options] if policy.is_a?(Array) && policy.size == 2 && policy[1].is_a?(Hash) policy_name, policy_options = policy policy_class = POLICY_CLASSES[policy_name] raise ArgumentError, "Unknown policy: #{policy_name}" unless policy_class return policy_class.new(**policy_options) end policy_class = POLICY_CLASSES[policy] raise ArgumentError, "Unknown policy: #{policy}" unless policy_class policy_class.new(**options) end