Sha256: 3523c57c0476263470c3ebeffcd7872c6b7b914df3af80d6842c5fa01165dd2e

Contents?: true

Size: 747 Bytes

Versions: 20

Compression:

Stored size: 747 Bytes

Contents

# frozen_string_literal: true

module JSI
  module Schema::Application::ChildApplication::Contains
    # @private
    def internal_applicate_contains(idx, instance, &block)
      if keyword?('contains')
        contains_schema = subschema(['contains'])

        child_idx_valid = Hash.new { |h, i| h[i] = contains_schema.instance_valid?(instance[i]) }

        if child_idx_valid[idx]
          yield contains_schema
        else
          instance_valid = instance.each_index.any? { |i| child_idx_valid[i] }

          unless instance_valid
            # invalid application: if contains_schema does not validate against any child, it applies to every child
            yield contains_schema
          end
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
jsi-0.8.1 lib/jsi/schema/application/child_application/contains.rb
jsi-0.8.0 lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.4 lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.5 lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.6 lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.7 lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.8 lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.8.pre.maruku lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.7.pre.rdiscount lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.6.pre.redcarpet lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.5.pre.kramdown lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.4.pre.commonmarker lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.0.pre.commonmarker lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.0.pre.kramdown lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.0.pre.redcarpet lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.0.pre.rdiscount lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.0.pre.maruku lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.3 lib/jsi/schema/application/child_application/contains.rb
jsi-dev-0.0.2 lib/jsi/schema/application/child_application/contains.rb
jsi-0.7.0 lib/jsi/schema/application/child_application/contains.rb