From dfcd72c0bdf6d4725641a58f059fbb1ccc7ab715 Mon Sep 17 00:00:00 2001 From: Philip Arndt Date: Thu, 2 Feb 2012 17:13:03 +1300 Subject: [PATCH] Delete the vendor/engines/ directory when it's completely empty after destroying the extension. --- core/lib/generators/refinery/engine/engine_generator.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/lib/generators/refinery/engine/engine_generator.rb b/core/lib/generators/refinery/engine/engine_generator.rb index 010db42fe6..e308ad4c8c 100644 --- a/core/lib/generators/refinery/engine/engine_generator.rb +++ b/core/lib/generators/refinery/engine/engine_generator.rb @@ -76,7 +76,7 @@ def generate exit(1) end - unless attributes.empty? and self.behavior != :revoke + if attributes.any? || self.behavior == :revoke Pathname.glob(Pathname.new(self.class.source_root).join('**', '**')).reject{|f| f.directory? or reject_file?(f) }.sort.each do |path| unless (engine_path = engine_path_for(path, engine_name)).nil? template path, engine_path @@ -136,6 +136,12 @@ def generate puts "rake db:migrate" puts "------------------------" end + else + engine_path = destination_pathname.join('vendor', 'engines', engine_plural_name) + if Pathname.glob(engine_path.join('**', '*')).all?(&:directory?) + say_status :remove, relative_to_original_destination_root(engine_path.to_s), true + FileUtils.rm_rf engine_path unless options[:pretend] + end end else puts "You must specify at least one field. For help: rails generate refinery:engine"