class Bundler::Source - bundler: Ruby Standard Library Documentation

# class Bundler::Source

### Attributes

checksum_store[R]
dependency_names[RW]

### Public Instance Methods

add_dependency_names(names) click to toggle source

    # File bundler/source.rb, line 46
    def add_dependency_names(names)
      @dependency_names = Array(dependency_names) | Array(names)
    end

cached!() click to toggle source

    # File bundler/source.rb, line 42
    def cached!; end

can_lock?(spec) click to toggle source

    # File bundler/source.rb, line 34
    def can_lock?(spec)
      spec.source == self
    end

dependency_names_to_double_check() click to toggle source

    # File bundler/source.rb, line 55
    def dependency_names_to_double_check
      specs.dependency_names
    end

double_check_for(*) click to toggle source

it’s possible that gems from one source depend on gems from some other source, so now we download gemspecs and iterate over those dependencies, looking for gems we don’t have info on yet.

    # File bundler/source.rb, line 53
    def double_check_for(*); end

extension_cache_path(spec) click to toggle source

    # File bundler/source.rb, line 79
    def extension_cache_path(spec)
      return unless Bundler.feature_flag.global_gem_cache?
      return unless source_slug = extension_cache_slug(spec)
      Bundler.user_cache.join(
        "extensions", Gem::Platform.local.to_s, Bundler.ruby_scope,
        source_slug, spec.full_name
      )
    end

identifier() click to toggle source

    # File bundler/source.rb, line 71
    def identifier
      to_s
    end

include?(other) click to toggle source

    # File bundler/source.rb, line 63
    def include?(other)
      other == self
    end

inspect() click to toggle source

    # File bundler/source.rb, line 67
    def inspect
      "#<#{self.class}:0x#{object_id} #{self}>"
    end

local!() click to toggle source

    # File bundler/source.rb, line 38
    def local!; end

local_only!() click to toggle source

    # File bundler/source.rb, line 40
    def local_only!; end

path?() click to toggle source

    # File bundler/source.rb, line 75
    def path?
      instance_of?(Bundler::Source::Path)
    end

remote!() click to toggle source

    # File bundler/source.rb, line 44
    def remote!; end

spec_names() click to toggle source

    # File bundler/source.rb, line 59
    def spec_names
      specs.spec_names
    end

unmet_deps() click to toggle source

    # File bundler/source.rb, line 16
    def unmet_deps
      specs.unmet_dependency_names
    end

version_message(spec, locked_spec = nil) click to toggle source

    # File bundler/source.rb, line 20
    def version_message(spec, locked_spec = nil)
      message = "#{spec.name} #{spec.version}"
      message += " (#{spec.platform})" if spec.platform != Gem::Platform::RUBY && !spec.platform.nil?

      if locked_spec
        locked_spec_version = locked_spec.version
        if locked_spec_version && spec.version != locked_spec_version
          message += Bundler.ui.add_color(" (was #{locked_spec_version})", version_color(spec.version, locked_spec_version))
        end
      end

      message
    end

### Private Instance Methods

earlier_version?(spec_version, locked_spec_version) click to toggle source

    # File bundler/source.rb, line 100
    def earlier_version?(spec_version, locked_spec_version)
      Gem::Version.new(spec_version) < Gem::Version.new(locked_spec_version)
    end

extension_cache_slug(_) click to toggle source

    # File bundler/source.rb, line 112
    def extension_cache_slug(_)
      nil
    end

print_using_message(message) click to toggle source

    # File bundler/source.rb, line 104
    def print_using_message(message)
      if !message.include?("(was ")
        Bundler.ui.debug message
      else
        Bundler.ui.info message
      end
    end

version_color(spec_version, locked_spec_version) click to toggle source

    # File bundler/source.rb, line 90
    def version_color(spec_version, locked_spec_version)
      if Gem::Version.correct?(spec_version) && Gem::Version.correct?(locked_spec_version)
        # display yellow if there appears to be a regression
        earlier_version?(spec_version, locked_spec_version) ? :yellow : :green
      else
        # default to green if the versions cannot be directly compared
        :green
      end
    end