Sha256: 9f2c44e3e2fb91144de720e8cd6300a2765a3bfdd7b7bbdb056100a08d5c616f

Contents?: true

Size: 673 Bytes

Versions: 11

Compression:

Stored size: 673 Bytes

Contents

module Schemacop
  module V3
    class AnyOfNode < CombinationNode
      def type
        :anyOf
      end

      def _validate(data, result:)
        super_data = super
        return if super_data.nil?

        match = match(super_data)

        if match
          match._validate(super_data, result: result)
        else
          result.error <<~PLAIN.strip
            Matches 0 schemas but should match at least 1:
            #{schema_messages(super_data).join("\n")}
          PLAIN
        end
      end

      def validate_self
        if @items.empty?
          fail 'Node "any_of" makes only sense with at least 1 item.'
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
schemacop-3.0.30 lib/schemacop/v3/any_of_node.rb
schemacop-3.0.29 lib/schemacop/v3/any_of_node.rb
schemacop-3.0.28 lib/schemacop/v3/any_of_node.rb
schemacop-3.0.27 lib/schemacop/v3/any_of_node.rb
schemacop-3.0.26 lib/schemacop/v3/any_of_node.rb
schemacop-3.0.25 lib/schemacop/v3/any_of_node.rb
schemacop-3.0.24 lib/schemacop/v3/any_of_node.rb
schemacop-3.0.23 lib/schemacop/v3/any_of_node.rb
schemacop-3.0.22 lib/schemacop/v3/any_of_node.rb
schemacop-3.0.21 lib/schemacop/v3/any_of_node.rb
schemacop-3.0.20 lib/schemacop/v3/any_of_node.rb