Class: Bundler::Source::Metadata

Inherits:
Bundler::Source show all
Defined in:
lib/bundler/source/metadata.rb

Instance Attribute Summary

Attributes inherited from Bundler::Source

#checksum_store, #dependency_names

Instance Method Summary collapse

Methods inherited from Bundler::Source

#add_dependency_names, #cached!, #can_lock?, #dependency_names_to_double_check, #double_check_for, #extension_cache_path, #identifier, #include?, #inspect, #local!, #local_only!, #path?, #remote!, #spec_names, #unmet_deps

Instance Method Details

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



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

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

#hashObject



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

def hash
  self.class.hash
end

#install(spec, _opts = {}) ⇒ Object



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

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

#optionsObject



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

def options
  {}
end

#specsObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 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_sObject



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

def to_s
  "the local ruby installation"
end

#version_message(spec) ⇒ Object



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

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