Sha256: 8059b32c1857318a0e16f5705b6e86bf783c3a9fe58c61884180a8215e7679cb

Contents?: true

Size: 421 Bytes

Versions: 1

Compression:

Stored size: 421 Bytes

Contents

# frozen_string_literal: true

require "solid/validators"

class KindOfValidator < ActiveModel::EachValidator
  def validate_each(model, attribute, value)
    with_option = Array.wrap(options[:with] || options[:in])

    return if with_option.any? { |type| value.is_a?(type) }

    message = "is not a #{with_option.map(&:name).join(" | ")}"

    Solid::Validators.add_error(model, attribute, message, options)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solid-process-0.4.0 lib/solid/validators/kind_of_validator.rb