diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2017-04-05 12:27:17 -0500 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2017-04-05 12:27:17 -0500 |
commit | 4e0bdcaab59fbcaea4fff2e2a75b1ad36819cc5a (patch) | |
tree | 79d5125122e69deb78be9f85c276fe49452438e6 /lib/bundler.rb | |
parent | 6a7262c5f048db438fc29dee5c1b95646dee58c6 (diff) | |
download | bundler-4e0bdcaab59fbcaea4fff2e2a75b1ad36819cc5a.tar.gz |
[Bundler] Avoid chdir when loading a yaml gemspec
Diffstat (limited to 'lib/bundler.rb')
-rw-r--r-- | lib/bundler.rb | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/bundler.rb b/lib/bundler.rb index 1969f36a71..88822f8f1a 100644 --- a/lib/bundler.rb +++ b/lib/bundler.rb @@ -413,20 +413,20 @@ EOF def load_gemspec_uncached(file, validate = false) path = Pathname.new(file) - # Eval the gemspec from its parent directory, because some gemspecs - # depend on "./" relative paths. - SharedHelpers.chdir(path.dirname.to_s) do - contents = path.read - spec = if contents[0..2] == "---" # YAML header - eval_yaml_gemspec(path, contents) - else + contents = path.read + spec = if contents.start_with?("---") # YAML header + eval_yaml_gemspec(path, contents) + else + # Eval the gemspec from its parent directory, because some gemspecs + # depend on "./" relative paths. + SharedHelpers.chdir(path.dirname.to_s) do eval_gemspec(path, contents) end - return unless spec - spec.loaded_from = path.expand_path.to_s - Bundler.rubygems.validate(spec) if validate - spec end + return unless spec + spec.loaded_from = path.expand_path.to_s + Bundler.rubygems.validate(spec) if validate + spec end def clear_gemspec_cache |