Sha256: 047915606f8a098b33e1f78849ca934f7c1c8b16e55095338a03431c8d419f8a

Contents?: true

Size: 738 Bytes

Versions: 17

Compression:

Stored size: 738 Bytes

Contents

module Schemacop
  module V3
    class ObjectNode < Node
      def self.allowed_options
        super + %i[classes strict]
      end

      def as_json
        {} # Not supported by Json Schema
      end

      protected

      def allowed_types
        @classes.map { |c| [c, c.name] }.to_h
      end

      def init
        @classes = Array(options.delete(:classes) || [])
        @strict = options.delete(:strict)
        @strict = true if @strict.nil?
      end

      def type_assertion_method
        @strict ? :instance_of? : :is_a?
      end

      def validate_self
        unless @strict.is_a?(TrueClass) || @strict.is_a?(FalseClass)
          fail 'Option "strict" must be a "boolean".'
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
schemacop-3.0.33 lib/schemacop/v3/object_node.rb
schemacop-3.0.32 lib/schemacop/v3/object_node.rb
schemacop-3.0.31 lib/schemacop/v3/object_node.rb
schemacop-3.0.30 lib/schemacop/v3/object_node.rb
schemacop-3.0.29 lib/schemacop/v3/object_node.rb
schemacop-3.0.28 lib/schemacop/v3/object_node.rb
schemacop-3.0.27 lib/schemacop/v3/object_node.rb
schemacop-3.0.26 lib/schemacop/v3/object_node.rb
schemacop-3.0.25 lib/schemacop/v3/object_node.rb
schemacop-3.0.24 lib/schemacop/v3/object_node.rb
schemacop-3.0.23 lib/schemacop/v3/object_node.rb
schemacop-3.0.22 lib/schemacop/v3/object_node.rb
schemacop-3.0.21 lib/schemacop/v3/object_node.rb
schemacop-3.0.20 lib/schemacop/v3/object_node.rb
schemacop-3.0.19 lib/schemacop/v3/object_node.rb
schemacop-3.0.18 lib/schemacop/v3/object_node.rb
schemacop-3.0.17 lib/schemacop/v3/object_node.rb