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 50

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

#eql?(other)

Alias for #==.

[ GitHub ]

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

alias_method :eql?, :==

#hash

[ GitHub ]

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

def hash
  self.class.hash
end

#install(spec, _opts = {})

[ GitHub ]

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

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

#options

[ GitHub ]

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

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]
        # can't point to the actual gemspec or else the require paths will be wrong
        s.loaded_from = __dir__
      end
    end

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

#to_s

[ GitHub ]

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

def to_s
  "the local ruby installation"
end

#version_message(spec)

[ GitHub ]

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

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