class Strategize::PolicyGroup

A collection of policies.

Attributes

policies[R]

Public Class Methods

new() click to toggle source

Create a new PolicyGroup

# File lib/strategize/policies/policy_group.rb, line 7
def initialize
  @policies = []
end

Public Instance Methods

add(policy) click to toggle source

Add policy to the group

@param policy [Strategize::Policy] a class that includes the Policy module @return [void]

# File lib/strategize/policies/policy_group.rb, line 15
def add(policy)
  fail Strategize::NotPolicyError unless policy?(policy)
  @policies.push(policy)
end

Private Instance Methods

policy?(policy) click to toggle source

Check if a policy includes the Policy module

@private @param policy [Class] the class to check

# File lib/strategize/policies/policy_group.rb, line 26
def policy?(policy)
  policy.included_modules.include?(Policy)
end