class Gem::SpecificationPolicy

def validate_metadata

def validate_metadata
  metadata = @specification.metadata
  unless Hash === metadata
    error 'metadata must be a hash'
  end
  metadata.each do |key, value|
    if !key.kind_of?(String)
      error "metadata keys must be a String"
    end
    if key.size > 128
      error "metadata key too large (#{key.size} > 128)"
    end
    if !value.kind_of?(String)
      error "metadata values must be a String"
    end
    if value.size > 1024
      error "metadata value too large (#{value.size} > 1024)"
    end
    if METADATA_LINK_KEYS.include? key
      if value !~ VALID_URI_PATTERN
        error "metadata['#{key}'] has invalid link: #{value.inspect}"
      end
    end
  end
end