Class Gem::Requirement
In: lib/rubygems/version.rb
Parent: Object

Requirement version includes a prefaced comparator in addition to a version number.

A Requirement object can actually contain multiple, er, requirements, as in (> 1.2, < 2.0).

Methods

as_list   create   default   hash   new   normalize   satisfied_by?   to_s  

Included Modules

Comparable

Constants

OPS = { "=" => lambda { |v, r| v == r }, "!=" => lambda { |v, r| v != r }, ">" => lambda { |v, r| v > r }, "<" => lambda { |v, r| v < r }, ">=" => lambda { |v, r| v >= r }, "<=" => lambda { |v, r| v <= r }, "~>" => lambda { |v, r| v >= r && v < r.bump }
OP_RE = Regexp.new(OPS.keys.collect{|k| Regexp.quote(k)}.join("|"))
REQ_RE = /\s*(#{OP_RE})\s*/

Public Class methods

Factory method to create a Version::Requirement object. Input may be a Version, a String, or nil. Intended to simplify client code.

If the input is "weird", the default version requirement is returned.

A default "version requirement" can surely only be ’> 0’.

Constructs a version requirement instance

str:[String Array] the version requirement string (e.g. ["> 1.23"])

Public Instance methods

Is the requirement satifised by version.

version:[Gem::Version] the version to compare against
return:[Boolean] true if this requirement is satisfied by the version, otherwise false

Overrides to check for comparator

str:[String] the version requirement string
return:[Boolean] true if the string format is correct, otherwise false

NOTE: Commented out because I don‘t think it is used.

      def correct?(str)
        /^#{REQ_RE}#{NUM_RE}$/.match(str)
      end

[Validate]