[rubygems/rubygems] Lazily parse dependencies in EndpointSpecification
Since not every dependency gets referenced. When resolving from scratch a Gemfile including only `"gem "rails", "~> 8.0.1"`, I get the following results: ### Before Total allocated: 295.01 MB (3624335 objects) Total retained: 119.31 MB (1364474 objects) ### After Total allocated: 288.21 MB (3498515 objects) Total retained: 119.10 MB (1357976 objects) https://github.com/rubygems/rubygems/commit/61eee39d81 Co-authored-by: Samuel Giddins <segiddins@segiddins.me>
This commit is contained in:
parent
c83370671b
commit
8e7883011a
@ -6,7 +6,8 @@ module Bundler
|
||||
include MatchRemoteMetadata
|
||||
|
||||
attr_reader :name, :version, :platform, :checksum
|
||||
attr_accessor :remote, :dependencies, :locked_platform
|
||||
attr_writer :dependencies
|
||||
attr_accessor :remote, :locked_platform
|
||||
|
||||
def initialize(name, version, platform, spec_fetcher, dependencies, metadata = nil)
|
||||
super()
|
||||
@ -14,7 +15,8 @@ module Bundler
|
||||
@version = Gem::Version.create version
|
||||
@platform = Gem::Platform.new(platform)
|
||||
@spec_fetcher = spec_fetcher
|
||||
@dependencies = dependencies.map {|dep, reqs| build_dependency(dep, reqs) }
|
||||
@dependencies = nil
|
||||
@unbuilt_dependencies = dependencies
|
||||
|
||||
@loaded_from = nil
|
||||
@remote_specification = nil
|
||||
@ -31,6 +33,10 @@ module Bundler
|
||||
@platform
|
||||
end
|
||||
|
||||
def dependencies
|
||||
@dependencies ||= @unbuilt_dependencies.map! {|dep, reqs| build_dependency(dep, reqs) }
|
||||
end
|
||||
|
||||
# needed for standalone, load required_paths from local gemspec
|
||||
# after the gem is installed
|
||||
def require_paths
|
||||
|
Loading…
x
Reference in New Issue
Block a user