module ActiveModel::Validations::Reflection::Helpers

Public Class Methods

evaluate_condition(condition, instance) click to toggle source
# File lib/active_model/validations/reflection.rb, line 23
def evaluate_condition(condition, instance)
  return condition.call(instance) if condition.respond_to?(:call)
  return instance.send(condition) if condition.is_a?(::Symbol) && instance.respond_to?(condition)

  condition
end
flat_validator?(validator) click to toggle source
# File lib/active_model/validations/reflection.rb, line 12
def flat_validator?(validator)
  !(validator.options.key?(:if) || validator.options.key?(:unless))
end
relevant_validator?(validator, instance) click to toggle source
# File lib/active_model/validations/reflection.rb, line 16
def relevant_validator?(validator, instance)
  condition = validator.options.key?(:if) ? validator.options[:if] : validator.options[:unless]
  result = evaluate_condition(condition, instance)

  (validator.options.key?(:unless) ? !result : !!result)
end