diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2017-03-31 10:47:39 -0500 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2017-03-31 11:47:30 -0500 |
commit | 574eaf4505bad2a9ba6fc09417567d1a30131d65 (patch) | |
tree | d9d22004ffc8fe90fb93d8e8049d70065b0ca34e | |
parent | fa61ff501492b74cb11cff1fef82aa9038784511 (diff) | |
download | bundler-seg-validate-git-specs.tar.gz |
[Source::Git] Only validate specs once (on download)seg-validate-git-specs
Instead of validating every time we setup, only do so when we re-serialize the spec
-rw-r--r-- | lib/bundler/source/git.rb | 4 | ||||
-rw-r--r-- | lib/bundler/source/path.rb | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/bundler/source/git.rb b/lib/bundler/source/git.rb index 30ff27c446..c95c94583f 100644 --- a/lib/bundler/source/git.rb +++ b/lib/bundler/source/git.rb @@ -234,6 +234,7 @@ module Bundler # The gemspecs we cache should already be evaluated. spec = Bundler.load_gemspec(spec_path) next unless spec + Bundler.rubygems.validate(spec) File.open(spec_path, "wb") {|file| file.write(spec.to_ruby) } end end @@ -298,6 +299,9 @@ module Bundler raise unless Bundler.feature_flag.allow_offline_install? Bundler.ui.warn "Using cached git data because of network errors" end + + # no-op, since we validate when re-serializing the gemspec + def validate_spec(_spec); end end end end diff --git a/lib/bundler/source/path.rb b/lib/bundler/source/path.rb index 2900b3f939..4b01496aac 100644 --- a/lib/bundler/source/path.rb +++ b/lib/bundler/source/path.rb @@ -144,6 +144,10 @@ module Bundler SharedHelpers.in_bundle? && app_cache_path.exist? end + def validate_spec(spec) + Bundler.rubygems.validate(spec) + end + def load_spec_files index = Index.new @@ -155,7 +159,7 @@ module Bundler Bundler.rubygems.set_installed_by_version(spec) # Validation causes extension_dir to be calculated, which depends # on #source, so we validate here instead of load_gemspec - Bundler.rubygems.validate(spec) + validate_spec(spec) index << spec end |