Sha256: 0a6272149ec1e334559769595b3b418d4c57ff4b28fe81ed18f7d0c095c553ab

Contents?: true

Size: 458 Bytes

Versions: 1

Compression:

Stored size: 458 Bytes

Contents

# frozen_string_literal: true

require 'active_model'

class TypeValidator
  class ByKlass
    def self.invalid?(value, options)
      klass = options[:klass]

      require_a_class(value)
      require_a_class(klass)

      return if value == klass || value < klass

      "must be the or a subclass of `#{klass.name}`"
    end

    def self.require_a_class(arg)
      raise ArgumentError, "#{arg} must be a class" unless arg.is_a?(Class)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
type_validator-0.7.0 lib/type_validator/by_klass.rb