diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2018-11-24 18:25:51 +0000 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2018-11-24 18:25:51 +0000 |
commit | c6142c76301ce2cb47c7751700586a56cfdda8b4 (patch) | |
tree | 5e36f3cfcc6eadc4f4eee2ad44be3d461bd64402 /lib/bundler/plugin.rb | |
parent | 6426fe56aedb7517f6db72f071d507f86fe2b644 (diff) | |
download | bundler-c6142c76301ce2cb47c7751700586a56cfdda8b4.tar.gz |
[Plugin] Ignore the deployment settingsegiddins/plugins-ignore-deployment
This allows installing plugins when the bundler is frozen, since plugins are not locked anyways
Diffstat (limited to 'lib/bundler/plugin.rb')
-rw-r--r-- | lib/bundler/plugin.rb | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/lib/bundler/plugin.rb b/lib/bundler/plugin.rb index 422d4acfbc..996d29aafb 100644 --- a/lib/bundler/plugin.rb +++ b/lib/bundler/plugin.rb @@ -73,20 +73,22 @@ module Bundler # @param [Pathname] gemfile path # @param [Proc] block that can be evaluated for (inline) Gemfile def gemfile_install(gemfile = nil, &inline) - builder = DSL.new - if block_given? - builder.instance_eval(&inline) - else - builder.eval_gemfile(gemfile) - end - definition = builder.to_definition(nil, true) + Bundler.settings.temporary(:frozen => false, :deployment => false) do + builder = DSL.new + if block_given? + builder.instance_eval(&inline) + else + builder.eval_gemfile(gemfile) + end + definition = builder.to_definition(nil, true) - return if definition.dependencies.empty? + return if definition.dependencies.empty? - plugins = definition.dependencies.map(&:name).reject {|p| index.installed? p } - installed_specs = Installer.new.install_definition(definition) + plugins = definition.dependencies.map(&:name).reject {|p| index.installed? p } + installed_specs = Installer.new.install_definition(definition) - save_plugins plugins, installed_specs, builder.inferred_plugins + save_plugins plugins, installed_specs, builder.inferred_plugins + end rescue RuntimeError => e unless e.is_a?(GemfileError) Bundler.ui.error "Failed to install plugin: #{e.message}\n #{e.backtrace[0]}" |