Rails генератор не удаляет вновь созданные папки при уничтожении
Я пишу генератор Rails, который собирается копировать файлы / папки из каталога шаблонов моего гема в каталог приложения. Это работает, как и ожидалось, когда я бегу rails generate mygem:install
Однако, когда я пытаюсь повернуть его вспять, используя rails destroy mygem:install
он не удаляет вновь созданные подпапки.
папка шаблонов
├── templates
│ ├── views
│ │ ├── about
│ │ │ ├── index.html.erb
│ │ ├── contact
│ │ │ ├── index.html.erb
папка приложения (после создания)
├── app
│ ├── views
│ │ ├── about
│ │ │ ├── index.html.erb
│ │ ├── contact
│ │ │ ├── index.html.erb
папка приложения (после уничтожения)
├── app
│ ├── views
│ │ ├── about
│ │ ├── contact
желаемый результат
├── app
│ ├── views
генератор моего драгоценного камня
module Mygem
module Generators
class InstallGenerator < Rails::Generators::Base
source_root File.expand_path('../templates', __FILE__)
def copy_templates
templates = Dir.glob("#{source_paths[0]}/*")
directory(templates[0], "app/views/")
end
end
end
end
0 ответов
Я столкнулся с той же проблемой - исправил, добавив следующее в мой файл generator.rb
def clean_up
case self.behavior
when :revoke then `rm -rf path/to/directory/`
end
end
У вас также есть :invoke
возможность указать действия, которые происходят только при генерации:
case self.behavior
when :invoke then do_something
end
так
# something_generator.rb
def generate_directory
case self.behavior
when :invoke
`mkdir path/to/directory`
when :revoke
`rm -rf path/to/directory`
end
end