????JFIF??x?x????'
| Server IP : 172.67.174.47  /  Your IP : 216.73.216.83 Web Server : LiteSpeed System : Linux premium151.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 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/thread-self/./root/opt/alt/ruby31/share/gems/gems/bundler-2.3.27/lib/bundler/ | 
| Upload File : | 
# frozen_string_literal: true
require "rubygems/dependency"
require_relative "shared_helpers"
require_relative "rubygems_ext"
module Bundler
  class Dependency < Gem::Dependency
    attr_reader :autorequire
    attr_reader :groups, :platforms, :gemfile, :path, :git, :github, :branch, :ref, :force_ruby_platform
    ALL_RUBY_VERSIONS = ((18..27).to_a + (30..31).to_a).freeze
    PLATFORM_MAP = {
      :ruby        => [Gem::Platform::RUBY, ALL_RUBY_VERSIONS],
      :mri         => [Gem::Platform::RUBY, ALL_RUBY_VERSIONS],
      :rbx         => [Gem::Platform::RUBY],
      :truffleruby => [Gem::Platform::RUBY],
      :jruby       => [Gem::Platform::JAVA, [18, 19]],
      :windows     => [Gem::Platform::WINDOWS, ALL_RUBY_VERSIONS],
      :mswin       => [Gem::Platform::MSWIN,     ALL_RUBY_VERSIONS],
      :mswin64     => [Gem::Platform::MSWIN64,   ALL_RUBY_VERSIONS - [18]],
      :mingw       => [Gem::Platform::MINGW,     ALL_RUBY_VERSIONS],
      :x64_mingw   => [Gem::Platform::X64_MINGW, ALL_RUBY_VERSIONS - [18, 19]],
    }.each_with_object({}) do |(platform, spec), hash|
      hash[platform] = spec[0]
      spec[1]&.each {|version| hash[:"#{platform}_#{version}"] = spec[0] }
    end.freeze
    def initialize(name, version, options = {}, &blk)
      type = options["type"] || :runtime
      super(name, version, type)
      @autorequire    = nil
      @groups         = Array(options["group"] || :default).map(&:to_sym)
      @source         = options["source"]
      @path           = options["path"]
      @git            = options["git"]
      @github         = options["github"]
      @branch         = options["branch"]
      @ref            = options["ref"]
      @platforms      = Array(options["platforms"])
      @env            = options["env"]
      @should_include = options.fetch("should_include", true)
      @gemfile        = options["gemfile"]
      @force_ruby_platform = options["force_ruby_platform"]
      @autorequire = Array(options["require"] || []) if options.key?("require")
    end
    # Returns the platforms this dependency is valid for, in the same order as
    # passed in the `valid_platforms` parameter
    def gem_platforms(valid_platforms)
      return valid_platforms if @platforms.empty?
      valid_platforms.select {|p| expanded_platforms.include?(GemHelpers.generic(p)) }
    end
    def expanded_platforms
      @expanded_platforms ||= @platforms.map {|pl| PLATFORM_MAP[pl] }.compact.flatten.uniq
    end
    def should_include?
      @should_include && current_env? && current_platform?
    end
    def current_env?
      return true unless @env
      if @env.is_a?(Hash)
        @env.all? do |key, val|
          ENV[key.to_s] && (val.is_a?(String) ? ENV[key.to_s] == val : ENV[key.to_s] =~ val)
        end
      else
        ENV[@env.to_s]
      end
    end
    def current_platform?
      return true if @platforms.empty?
      @platforms.any? do |p|
        Bundler.current_ruby.send("#{p}?")
      end
    end
    def to_lock
      out = super
      out << "!" if source
      out
    end
    def specific?
      super
    rescue NoMethodError
      requirement != ">= 0"
    end
  end
end