From 7fae42b4342fa844de44a5778f2820698a44e81c Mon Sep 17 00:00:00 2001 From: "Darren L. Weber, Ph.D" Date: Fri, 19 May 2017 17:24:53 -0700 Subject: [PATCH] engine_cart:prepare is idempotent when stanza is current --- lib/engine_cart.rb | 7 ++++++- lib/engine_cart/tasks/engine_cart.rake | 14 ++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/engine_cart.rb b/lib/engine_cart.rb index d119eaa..42c5239 100644 --- a/lib/engine_cart.rb +++ b/lib/engine_cart.rb @@ -59,9 +59,14 @@ class << self def self.check_for_gemfile_stanza return unless File.exist? 'Gemfile' - unless File.readlines('Gemfile').grep(/#{EngineCart.gemfile_stanza_check_line}/).any? + unless gemfile_stanza_current? Bundler.ui.warn "[EngineCart] For better results, consider updating the EngineCart stanza in your Gemfile with:\n\n" Bundler.ui.warn EngineCart.gemfile_stanza_text end end + + def self.gemfile_stanza_current? + return false unless File.exist? 'Gemfile' + File.readlines('Gemfile').grep(/#{EngineCart.gemfile_stanza_check_line}/).any? + end end diff --git a/lib/engine_cart/tasks/engine_cart.rake b/lib/engine_cart/tasks/engine_cart.rake index e5a5061..30de4ec 100644 --- a/lib/engine_cart/tasks/engine_cart.rake +++ b/lib/engine_cart/tasks/engine_cart.rake @@ -3,12 +3,14 @@ require 'engine_cart' namespace :engine_cart do desc "Prepare a gem for using engine_cart" - task :prepare do - require 'generators/engine_cart/install_generator' - generator = EngineCart::InstallGenerator.new - generator.create_test_app_templates - generator.ignore_test_app - generator.add_gemfile_include + task :prepare, [:force] do |t, args| + if !EngineCart.gemfile_stanza_current? || args[:force] + require 'generators/engine_cart/install_generator' + generator = EngineCart::InstallGenerator.new + generator.create_test_app_templates + generator.ignore_test_app + generator.add_gemfile_include + end end task :setup do