module SimpleForm::Helpers::Validators

Public Instance Methods

has_validators?() click to toggle source
# File lib/simple_form/helpers/validators.rb, line 4
def has_validators?
  @has_validators ||= attribute_name && object.class.respond_to?(:validators_on)
end

Private Instance Methods

action_validator_match?(validator) click to toggle source
# File lib/simple_form/helpers/validators.rb, line 26
def action_validator_match?(validator)
  return true if !validator.options.include?(:on)

  case validator.options[:on]
  when :save
    true
  when :create
    !object.persisted?
  when :update
    object.persisted?
  end
end
attribute_validators() click to toggle source
# File lib/simple_form/helpers/validators.rb, line 10
def attribute_validators
  object.class.validators_on(attribute_name)
end
conditional_validators?(validator) click to toggle source
# File lib/simple_form/helpers/validators.rb, line 22
def conditional_validators?(validator)
  validator.options.include?(:if) || validator.options.include?(:unless)
end
find_validator(validator) click to toggle source
# File lib/simple_form/helpers/validators.rb, line 39
def find_validator(validator)
  attribute_validators.find { |v| validator === v } if has_validators?
end
reflection_validators() click to toggle source
# File lib/simple_form/helpers/validators.rb, line 14
def reflection_validators
  reflection ? object.class.validators_on(reflection.name) : []
end
valid_validator?(validator) click to toggle source
# File lib/simple_form/helpers/validators.rb, line 18
def valid_validator?(validator)
  !conditional_validators?(validator) && action_validator_match?(validator)
end