Sha256: 71ded303c314a7a348bc583a12c2ef106c5db49e1926b685f896848f8c1fecf0
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
module NxtSchema module Node class AnyOf < Base include HasSubNodes def initialize(name:, type: nil, parent_node:, **options, &block) super end def collection(name = sub_nodes.count, type = NxtSchema::Node::Collection::DEFAULT_TYPE, **options, &block) super end def schema(name = sub_nodes.count, type = NxtSchema::Node::Schema::DEFAULT_TYPE, **options, &block) super end def node(name = sub_nodes.count, node_or_type_of_node = nil, **options, &block) super end # TODO: Maybe overwrite sub node methods to not have to provide a name here and use node count instead def on(*args) raise NotImplementedError end def maybe(*args) raise NotImplementedError end private def resolve_type(name_or_type) nil end def resolve_optional_option return unless options.key?(:optional) raise InvalidOptions, "The optional option is not available for nodes of type #{self.class.name}" end def resolve_omnipresent_option return unless options.key?(:omnipresent) raise InvalidOptions, "The omnipresent option is not available for nodes of type #{self.class.name}" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nxt_schema-1.0.0 | lib/nxt_schema/node/any_of.rb |