module SimpleForm::Helpers::Validators

def action_validator_match?(validator)

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

def attribute_validators

def attribute_validators
  object.class.validators_on(attribute_name)
end

def conditional_validators?(validator)

def conditional_validators?(validator)
  validator.options.include?(:if) || validator.options.include?(:unless)
end

def find_validator(validator)

def find_validator(validator)
  attribute_validators.find { |v| validator === v } if has_validators?
end

def has_validators?

def has_validators?
  @has_validators ||= attribute_name && object.class.respond_to?(:validators_on)
end

def reflection_validators

def reflection_validators
  reflection ? object.class.validators_on(reflection.name) : []
end

def valid_validator?(validator)

def valid_validator?(validator)
  !conditional_validators?(validator) && action_validator_match?(validator)
end