Sha256: 7104b75afc7e477acf756649439b0fc1d4e55416c34a6dc9c2ffe2045fd07a4d
Contents?: true
Size: 898 Bytes
Versions: 9
Compression:
Stored size: 898 Bytes
Contents
# frozen_string_literal: true module Leftovers class ConfigLoader class ValueOrObjectSchema < ObjectSchema class << self attr_accessor :or_value_schema def validate(node) if node.hash? super(node) else validate_or_value_schema(node) end end def to_ruby(node) if node.hash? super else or_value_schema.to_ruby(node) end end private def validate_or_value_schema(node) or_value_schema.validate(node) return true if node.valid? if node.string? && attribute_for_key(node) node.error = "#{node.name_}#{node.to_sym} must be a hash key" else node.error += " or a hash with any of #{suggestions.join(', ')}" end end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems