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 48

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

#eql?(other)

Alias for #==.

[ GitHub ]

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

alias_method :eql?, :==

#hash

[ GitHub ]

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

def hash
  self.class.hash
end

#install(spec, _opts = {})

[ GitHub ]

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

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

#options

[ GitHub ]

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

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"]
      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 44

def to_s
  "the local ruby installation"
end

#version_message(spec)

[ GitHub ]

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

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