‰PNG  IHDRèèÂÁC³×IDATxÚíÖ1 À°ù7 89šTÁ®5<'wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ; wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ»`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸KÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãHÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãHÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŽºÆá¾d“é­IEND®B`‚ FM / rubygems
/home/wespack/ruby/lib/rubygems
NameSizeModeActions
commands/-0755rm
digest/-0755rm
ext/-0755rm
indexer/-0755rm
package/-0755rm
builder.rb21300644editdlrm
command.rb113200644editdlrm
command_manager.rb41220644editdlrm
config_file.rb60610644editdlrm
custom_require.rb11170644editdlrm
defaults.rb14730644editdlrm
dependency.rb14060644editdlrm
dependency_installer.rb68540644editdlrm
dependency_list.rb36830644editdlrm
doc_manager.rb45440644editdlrm
exceptions.rb22360644editdlrm
ext.rb3790644editdlrm
format.rb21010644editdlrm
gem_openssl.rb23340644editdlrm
gem_path_searcher.rb24820644editdlrm
gem_runner.rb17910644editdlrm
indexer.rb51840644editdlrm
installer.rb142040644editdlrm
install_update_options.rb32820644editdlrm
local_remote_options.rb28820644editdlrm
old_format.rb41060644editdlrm
package.rb25170644editdlrm
platform.rb50790644editdlrm
remote_fetcher.rb82380644editdlrm
requirement.rb38130644editdlrm
require_paths_builder.rb5140644editdlrm
rubygems_version.rb1330644editdlrm
security.rb289820644editdlrm
server.rb134160644editdlrm
source_index.rb128960644editdlrm
source_info_cache.rb88110644editdlrm
source_info_cache_entry.rb12110644editdlrm
specification.rb298490644editdlrm
timer.rb5110644editdlrm
uninstaller.rb56410644editdlrm
user_interaction.rb69890644editdlrm
validator.rb61310644editdlrm
version.rb34990644editdlrm
version_option.rb12950644editdlrm
Edit: /home/wespack/ruby/lib/rubygems/requirement.rb (3813B)
#-- # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others. # All rights reserved. # See LICENSE.txt for permissions. #++ require 'rubygems/version' ## # 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). class Gem::Requirement include Comparable attr_reader :requirements 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 = /#{OPS.keys.map{ |k| Regexp.quote k }.join '|'}/o ## # Factory method to create a Gem::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. # def self.create(input) case input when Gem::Requirement then input when Gem::Version, Array then new input else if input.respond_to? :to_str then self.new [input.to_str] else self.default end end end ## # A default "version requirement" can surely _only_ be '>= 0'. #-- # This comment once said: # # "A default "version requirement" can surely _only_ be '> 0'." def self.default self.new ['>= 0'] end ## # Constructs a Requirement from +requirements+ which can be a String, a # Gem::Version, or an Array of those. See parse for details on the # formatting of requirement strings. def initialize(requirements) @requirements = case requirements when Array then requirements.map do |requirement| parse(requirement) end else [parse(requirements)] end @version = nil # Avoid warnings. end # Marshal raw requirements, rather than the full object def marshal_dump [@requirements] end # Load custom marshal format def marshal_load(array) @requirements = array[0] @version = nil end def to_s # :nodoc: as_list.join(", ") end def as_list normalize @requirements.collect { |req| "#{req[0]} #{req[1]}" } end def normalize return if not defined? @version or @version.nil? @requirements = [parse(@version)] @nums = nil @version = nil @op = nil end ## # 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 # def satisfied_by?(version) normalize @requirements.all? { |op, rv| satisfy?(op, version, rv) } end ## # Is "version op required_version" satisfied? # def satisfy?(op, version, required_version) OPS[op].call(version, required_version) end ## # Parse the version requirement obj returning the operator and version. # # The requirement can be a String or a Gem::Version. A String can be an # operator (<, <=, =, =>, >, !=, ~>), a version number, or both, operator # first. def parse(obj) case obj when /^\s*(#{OP_RE})\s*([0-9.]+)\s*$/o then [$1, Gem::Version.new($2)] when /^\s*([0-9.]+)\s*$/ then ['=', Gem::Version.new($1)] when /^\s*(#{OP_RE})\s*$/o then [$1, Gem::Version.new('0')] when Gem::Version then ['=', obj] else fail ArgumentError, "Illformed requirement [#{obj.inspect}]" end end def <=>(other) to_s <=> other.to_s end def hash # :nodoc: to_s.hash end end