123456789_123456789_123456789_123456789_123456789_

Class: Bundler::Source::Metadata

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: Bundler::Source
Defined in: lib/bundler/source/metadata.rb

Instance Attribute Summary

Instance Method Summary

::Bundler::Source - Inherited

#add_dependency_names, #cached!, #can_lock?, #dependency_names_to_double_check,
#double_check_for

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.

#extension_cache_path, #identifier, #include?, #inspect, #local!, #local_only!, #remote!, #spec_names, #unmet_deps, #version_message, #earlier_version?, #extension_cache_slug, #print_using_message, #version_color

Instance Method Details

#==(other) Also known as: #eql?

[ GitHub ]

  
# File 'lib/bundler/source/metadata.rb', line 49

def ==(other)
  self.class == other.class
end

#eql?(other)

Alias for #==.

[ GitHub ]

  
# File 'lib/bundler/source/metadata.rb', line 52

alias_method :eql?, :==

#hash

[ GitHub ]

  
# File 'lib/bundler/source/metadata.rb', line 54

def hash
  self.class.hash
end

#install(spec, _opts = {})

[ GitHub ]

  
# File 'lib/bundler/source/metadata.rb', line 40

def install(spec, _opts = {})
  print_using_message "Using #{version_message(spec)}"
  nil
end

#options

[ GitHub ]

  
# File 'lib/bundler/source/metadata.rb', line 36

def options
  {}
end

#specs

[ GitHub ]

  
# File 'lib/bundler/source/metadata.rb', line 6

def specs
  @specs ||= Index.build do |idx|
    idx << Gem::Specification.new("Ruby\0", Bundler::RubyVersion.system.gem_version)
    idx << Gem::Specification.new("RubyGems\0", Gem::VERSION) do |s|
      s.required_rubygems_version = Gem::Requirement.default
    end

    if local_spec = Gem.loaded_specs["bundler"]
      raise CorruptBundlerInstallError.new(local_spec) if local_spec.version.to_s != Bundler::VERSION

      idx << local_spec
    else
      idx << Gem::Specification.new do |s|
        s.name     = "bundler"
        s.version  = VERSION
        s.license  = "MIT"
        s.platform = Gem::Platform::RUBY
        s.authors  = ["bundler team"]
        s.bindir   = "exe"
        s.homepage = "https://bundler.io"
        s.summary  = "The best way to manage your application's dependencies"
        s.executables = %w[bundle bundler]
        s.loaded_from = SharedHelpers.gemspec_path
      end
    end

    idx.each {|s| s.source = self }
  end
end

#to_s

[ GitHub ]

  
# File 'lib/bundler/source/metadata.rb', line 45

def to_s
  "the local ruby installation"
end

#version_message(spec)

[ GitHub ]

  
# File 'lib/bundler/source/metadata.rb', line 58

def version_message(spec)
  "#{spec.name} #{spec.version}"
end