GRAYBYTE WORDPRESS FILE MANAGER4169

Server IP : 198.54.121.189 / Your IP : 216.73.216.112
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/ruby19/lib64/ruby/1.9.1/rubygems/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/ruby19/lib64/ruby/1.9.1/rubygems//requirement.rb
require "rubygems/version"

##
# A Requirement is a set of one or more version restrictions. It supports a
# few (<tt>=, !=, >, <, >=, <=, ~></tt>) different restriction operators.

# REFACTOR: The fact that a requirement is singular or plural is kind of
# awkward. Is Requirement the right name for this? Or should it be one
# [op, number] pair, and we call the list of requirements something else?
# Since a Requirement is held by a Dependency, maybe this should be made
# singular and the list aspect should be pulled up into Dependency?

require "rubygems/version"
require "rubygems/deprecate"

class Gem::Requirement
  include Comparable

  OPS = { #:nodoc:
    "="  =>  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.release < r.bump }
  }

  quoted  = OPS.keys.map { |k| Regexp.quote k }.join "|"
  PATTERN = /\A\s*(#{quoted})?\s*(#{Gem::Version::VERSION_PATTERN})\s*\z/

  ##
  # 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
        new [input.to_str]
      else
        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
    new '>= 0'
  end

  ##
  # Parse +obj+, returning an <tt>[op, version]</tt> pair. +obj+ can
  # be a String or a Gem::Version.
  #
  # If +obj+ is a String, it can be either a full requirement
  # specification, like <tt>">= 1.2"</tt>, or a simple version number,
  # like <tt>"1.2"</tt>.
  #
  #     parse("> 1.0")                 # => [">", "1.0"]
  #     parse("1.0")                   # => ["=", "1.0"]
  #     parse(Gem::Version.new("1.0")) # => ["=,  "1.0"]

  def self.parse obj
    return ["=", obj] if Gem::Version === obj

    unless PATTERN =~ obj.to_s
      raise ArgumentError, "Illformed requirement [#{obj.inspect}]"
    end

    [$1 || "=", Gem::Version.new($2)]
  end

  ##
  # An array of requirement pairs. The first element of the pair is
  # the op, and the second is the Gem::Version.

  attr_reader :requirements #:nodoc:

  ##
  # Constructs a requirement from +requirements+. Requirements can be
  # Strings, Gem::Versions, or Arrays of those. +nil+ and duplicate
  # requirements are ignored. An empty set of +requirements+ is the
  # same as <tt>">= 0"</tt>.

  def initialize *requirements
    requirements = requirements.flatten
    requirements.compact!
    requirements.uniq!

    requirements << ">= 0" if requirements.empty?
    @none = (requirements == ">= 0")
    @requirements = requirements.map! { |r| self.class.parse r }
  end

  def none?
    @none ||= (to_s == ">= 0")
  end

  def as_list # :nodoc:
    requirements.map { |op, version| "#{op} #{version}" }.sort
  end

  def hash # :nodoc:
    requirements.hash
  end

  def marshal_dump # :nodoc:
    fix_syck_default_key_in_requirements

    [@requirements]
  end

  def marshal_load array # :nodoc:
    @requirements = array[0]

    fix_syck_default_key_in_requirements
  end

  def yaml_initialize(tag, vals) # :nodoc:
    vals.each do |ivar, val|
      instance_variable_set "@#{ivar}", val
    end

    fix_syck_default_key_in_requirements
  end

  def init_with coder # :nodoc:
    yaml_initialize coder.tag, coder.map
  end

  def prerelease?
    requirements.any? { |r| r.last.prerelease? }
  end

  def pretty_print q # :nodoc:
    q.group 1, 'Gem::Requirement.new(', ')' do
      q.pp as_list
    end
  end

  ##
  # True if +version+ satisfies this Requirement.

  def satisfied_by? version
    # #28965: syck has a bug with unquoted '=' YAML.loading as YAML::DefaultKey
    requirements.all? { |op, rv| (OPS[op] || OPS["="]).call version, rv }
  end

  alias :=== :satisfied_by?
  alias :=~ :satisfied_by?

  ##
  # True if the requirement will not always match the latest version.

  def specific?
    return true if @requirements.length > 1 # GIGO, > 1, > 2 is silly

    not %w[> >=].include? @requirements.first.first # grab the operator
  end

  def to_s # :nodoc:
    as_list.join ", "
  end

  def <=> other # :nodoc:
    to_s <=> other.to_s
  end

  private

  def fix_syck_default_key_in_requirements
    Gem.load_yaml

    # Fixup the Syck DefaultKey bug
    @requirements.each do |r|
      if r[0].kind_of? Gem::SyckDefaultKey
        r[0] = "="
      end
    end
  end
end

# :stopdoc:
# Gem::Version::Requirement is used in a lot of old YAML specs. It's aliased
# here for backwards compatibility. I'd like to remove this, maybe in RubyGems
# 2.0.

::Gem::Version::Requirement = ::Gem::Requirement
# :startdoc:


[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 03 2024 22:50:37
root / root
0755
commands
--
March 03 2024 22:48:12
root / linksafe
0755
ext
--
March 03 2024 22:48:12
root / linksafe
0755
package
--
March 03 2024 22:48:12
root / linksafe
0755
ssl_certs
--
March 03 2024 22:48:12
root / linksafe
0755
builder.rb
2.215 KB
April 19 2012 22:43:16
root / linksafe
0644
command.rb
12.462 KB
July 27 2011 02:04:03
root / linksafe
0644
command_manager.rb
4.668 KB
July 27 2011 02:04:03
root / linksafe
0644
config_file.rb
9.688 KB
April 19 2012 23:38:41
root / linksafe
0644
custom_require.rb
1.827 KB
April 19 2012 22:43:16
root / linksafe
0644
defaults.rb
2.652 KB
April 19 2012 22:43:16
root / linksafe
0644
dependency.rb
6.435 KB
October 08 2011 10:53:11
root / linksafe
0644
dependency_installer.rb
9.939 KB
July 27 2011 02:04:03
root / linksafe
0644
dependency_list.rb
5.585 KB
October 08 2011 10:53:11
root / linksafe
0644
deprecate.rb
1.808 KB
October 08 2011 10:53:11
root / linksafe
0644
doc_manager.rb
5.547 KB
July 27 2011 02:04:03
root / linksafe
0644
errors.rb
0.774 KB
July 27 2011 02:04:03
root / linksafe
0644
exceptions.rb
2.337 KB
July 27 2011 02:04:03
root / linksafe
0644
ext.rb
0.37 KB
July 27 2011 02:04:03
root / linksafe
0644
format.rb
1.958 KB
April 19 2012 22:43:16
root / linksafe
0644
gem_openssl.rb
2.24 KB
August 05 2011 20:18:14
root / linksafe
0644
gem_path_searcher.rb
4.572 KB
October 08 2011 10:53:11
root / linksafe
0644
gem_runner.rb
2.379 KB
July 27 2011 02:04:03
root / linksafe
0644
gemcutter_utilities.rb
1.856 KB
July 27 2011 02:04:03
root / linksafe
0644
indexer.rb
16.854 KB
October 08 2011 10:53:11
root / linksafe
0644
install_update_options.rb
3.867 KB
July 27 2011 02:04:03
root / linksafe
0644
installer.rb
16.944 KB
October 25 2012 09:18:59
root / linksafe
0644
installer_test_case.rb
3.104 KB
April 19 2012 22:43:16
root / linksafe
0644
local_remote_options.rb
3.358 KB
July 27 2011 02:04:03
root / linksafe
0644
mock_gem_ui.rb
1.05 KB
July 27 2011 02:04:03
root / linksafe
0644
old_format.rb
3.688 KB
July 27 2011 02:04:03
root / linksafe
0644
package.rb
2.152 KB
July 27 2011 02:04:03
root / linksafe
0644
package_task.rb
3.793 KB
July 27 2011 02:04:03
root / linksafe
0644
path_support.rb
1.502 KB
August 26 2011 01:12:57
root / linksafe
0644
platform.rb
5.551 KB
April 19 2012 22:43:16
root / linksafe
0644
psych_additions.rb
0.486 KB
April 19 2012 22:43:16
root / linksafe
0644
psych_tree.rb
1.342 KB
April 19 2012 22:43:16
root / linksafe
0644
remote_fetcher.rb
13.499 KB
April 19 2012 23:38:41
root / linksafe
0644
require_paths_builder.rb
0.563 KB
July 27 2011 02:04:03
root / linksafe
0644
requirement.rb
4.988 KB
April 19 2012 22:43:16
root / linksafe
0644
security.rb
28.834 KB
July 27 2011 02:04:03
root / linksafe
0644
server.rb
21.927 KB
October 08 2011 10:53:11
root / linksafe
0644
source_index.rb
11.005 KB
October 08 2011 10:53:11
root / linksafe
0644
spec_fetcher.rb
7.173 KB
April 19 2012 22:43:16
root / linksafe
0644
specification.rb
54.68 KB
April 19 2012 22:43:16
root / linksafe
0644
syck_hack.rb
3.96 KB
April 19 2012 23:38:41
root / linksafe
0644
test_case.rb
21.892 KB
April 19 2012 22:43:16
root / linksafe
0644
test_utilities.rb
3.469 KB
August 05 2011 20:18:14
root / linksafe
0644
text.rb
1.226 KB
July 27 2011 02:04:03
root / linksafe
0644
uninstaller.rb
6.77 KB
July 27 2011 03:42:40
root / linksafe
0644
user_interaction.rb
11.225 KB
August 05 2011 20:18:14
root / linksafe
0644
validator.rb
4.646 KB
July 27 2011 02:04:03
root / linksafe
0644
version.rb
10.185 KB
December 22 2013 04:38:28
root / linksafe
0644
version_option.rb
1.589 KB
July 27 2011 02:04:03
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF