class Railjet::ComposedPolicy

Attributes

context[R]
object[R]
policies[R]

Public Class Methods

add(policy, after: nil, before: nil) click to toggle source
# File lib/railjet/composed_policy.rb, line 8
def self.add(policy, after: nil, before: nil)
  self.policies ||= []

  if after
    self.policies = policies.dup.insert(policies.index(after) + 1, policy)
  elsif before
    self.policies = policies.dup.insert(policies.index(before), policy)
  else
    self.policies += [policy]
  end
end
new(context, object) click to toggle source
# File lib/railjet/composed_policy.rb, line 20
def initialize(context, object)
  @context, @object = context, object

  @policies = self.class.policies.map do |policy|
    policy.new(context, object)
  end
end

Public Instance Methods

errors() click to toggle source
# File lib/railjet/composed_policy.rb, line 32
def errors
  valid?
  policies.map(&:errors).inject(&:<<)
end
valid?() click to toggle source
# File lib/railjet/composed_policy.rb, line 28
def valid?
  policies.map(&:valid?).all?
end
validate!() click to toggle source
# File lib/railjet/composed_policy.rb, line 37
def validate!
  policies.each(&:validate!)
end