class method
Gem::Requirement.parse
(::String | ::Gem::Version obj) -> [ ::Gem::Requirement::operator, ::Gem::Version ]
parse(obj)
lib/rubygems/requirement.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/rubygems/requirement.rb, line 103
def self.parse(obj)
return ["=", obj] if Gem::Version === obj
unless PATTERN =~ obj.to_s
raise BadRequirementError, "Illformed requirement [#{obj.inspect}]"
end
op = -($1 || "=")
version = -$2
if op == ">=" && version == "0"
DefaultRequirement
elsif op == ">=" && version == "0.a"
DefaultPrereleaseRequirement
else
[op, Gem::Version.new(version)]
end
end
Parse obj, returning an [op, version] pair. obj can be a String or a Gem::Version.
If obj is a String, it can be either a full requirement specification, like ">= 1.2", or a simple version number, like "1.2".
Example
parse("> 1.0") # => [">", Gem::Version.new("1.0")] parse("1.0") # => ["=", Gem::Version.new("1.0")] parse(Gem::Version.new("1.0")) # => ["=, Gem::Version.new("1.0")]