method
validate_metadata
ruby latest stable - Class:
Gem::Specification
validate_metadata()public
No documentation available.
# File lib/rubygems/specification.rb, line 2872
def validate_metadata
url_validation_regex = %{\Ahttps?:\/\/([^\s:@]+:[^\s:@]*@)?[A-Za-z\d\-]+(\.[A-Za-z\d\-]+)+\.?(:\d{1,5})?([\/?]\S*)?\z}
link_keys = %(
bug_tracker_uri
changelog_uri
documentation_uri
homepage_uri
mailing_list_uri
source_code_uri
wiki_uri
)
metadata.each do|key, value|
if !key.kind_of?(String)
raise Gem::InvalidSpecificationException,
"metadata keys must be a String"
end
if key.size > 128
raise Gem::InvalidSpecificationException,
"metadata key too large (#{key.size} > 128)"
end
if !value.kind_of?(String)
raise Gem::InvalidSpecificationException,
"metadata values must be a String"
end
if value.size > 1024
raise Gem::InvalidSpecificationException,
"metadata value too large (#{value.size} > 1024)"
end
if link_keys.include? key
if value !~ url_validation_regex
raise Gem::InvalidSpecificationException,
"metadata['#{key}'] has invalid link: #{value.inspect}"
end
end
end
end