Method: Bundler::PubGrub::BasicPackageSource#initialize

Defined in:
lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb

#initializeBasicPackageSource

Returns a new instance of BasicPackageSource.


92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb', line 92

def initialize
  @root_package = Package.root
  @root_version = Package.root_version

  @cached_versions = Hash.new do |h,k|
    if k == @root_package
      h[k] = [@root_version]
    else
      h[k] = all_versions_for(k)
    end
  end
  @sorted_versions = Hash.new { |h,k| h[k] = @cached_versions[k].sort }
  @version_indexes = Hash.new { |h,k| h[k] = @cached_versions[k].each.with_index.to_h }

  @cached_dependencies = Hash.new do |packages, package|
    if package == @root_package
      packages[package] = {
        @root_version => root_dependencies
      }
    else
      packages[package] = Hash.new do |versions, version|
        versions[version] = dependencies_for(package, version)
      end
    end
  end
end