Sha256: 1c27ed9f7005e398c7163fee0fcce906b93d4af1a8648073cdb19faf0535ae36

Contents?: true

Size: 659 Bytes

Versions: 12

Compression:

Stored size: 659 Bytes

Contents

# frozen_string_literal: true

class BooleanValidator < BaseValidator

  CHECKS = {
    all: nil,
    false_only: %w[0 f false n no off],
    true_only: %w[1 t true y yes on]
  }.freeze

  def validate_each(record, attribute, value)
    assert_valid_check!
    super
  end

  private

  def assert_valid_check!
    assert_valid_option!(:check, CHECKS.keys)
  end

  def check
    options[:check] || :all
  end

  def error_message
    [options[:message] || I18n.t("errors.messages.boolean.#{check}")]
  end

  def valid_attr?
    checks = CHECKS[check] || [].concat(CHECKS[:false_only], CHECKS[:true_only])
    checks.include?(value.to_s.downcase)
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
lite-validators-1.8.0 lib/lite/validators/boolean_validator.rb
lite-validators-1.7.2 lib/lite/validators/boolean_validator.rb
lite-validators-1.7.1 lib/lite/validators/boolean_validator.rb
lite-validators-1.7.0 lib/lite/validators/boolean_validator.rb
lite-validators-1.6.0 lib/lite/validators/boolean_validator.rb
lite-validators-1.5.0 lib/lite/validators/boolean_validator.rb
lite-validators-1.4.0 lib/lite/validators/boolean_validator.rb
lite-validators-1.3.2 lib/lite/validators/boolean_validator.rb
lite-validators-1.3.1 lib/lite/validators/boolean_validator.rb
lite-validators-1.3.0 lib/lite/validators/boolean_validator.rb
lite-validators-1.2.0 lib/lite/validators/boolean_validator.rb
lite-validators-1.1.2 lib/lite/validators/boolean_validator.rb