Sha256: 2075a7f52704aec9e233868bef5b6444d6e76825afcf7c5048d32f2c71640053

Contents?: true

Size: 668 Bytes

Versions: 40

Compression:

Stored size: 668 Bytes

Contents

module Schemacop
  module V2
    class ObjectValidator < Node
      register symbols: :object, klasses: BasicObject

      option :classes
      option :strict

      def type_label
        "#{super} (#{classes.join(', ')})"
      end

      def type_matches?(data)
        if option(:strict).is_a?(FalseClass)
          sub_or_class = classes.map { |klass| data.class <= klass }.include?(true)
          super && (classes.empty? || sub_or_class) && !data.nil?
        else
          super && (classes.empty? || classes.include?(data.class)) && !data.nil?
        end
      end

      private

      def classes
        [*option(:classes)]
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
schemacop-3.0.33 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.32 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.31 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.30 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.29 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.28 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.27 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.26 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.25 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.24 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.23 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.22 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.21 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.20 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.19 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.18 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.17 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.16 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.15 lib/schemacop/v2/validator/object_validator.rb
schemacop-3.0.14 lib/schemacop/v2/validator/object_validator.rb