FileUtils покрывает большую часть того, что вы хотите. mkdir_p
использует команду mkdir -p
командной строки, которая задает полный путь, если каталоги не существуют.
IO.write
(который File наследует от IO) принимает имя файла и его содержимое. Не нужно удалять старый файл и трогать новый.
Кроме того, вы должны убедиться, что вы используете Rails.root.join
с вашими путями к файлам. Это похоже на File.join
, в том, что оно помогает вам создать путь к файлу, не удваивая ваш /
в случае аварии, но также возвращает абсолютный путь к файлу на вашем компьютере. Кроме того, это делает ваш код независимым от ОС, потому что в то время как системы Unix используют «/» в качестве разделителя папок, компьютеры Windows используют «\». Итак, Rails.root.join
делает все это безопаснее.
Вот пример использования его в Unix-системе:
Если Rails.root равен '/some/cool/path/here'
, тогда Rails.root.join('views','components', 'buttons')
будет '/some/cool/path/here/views/components/buttons'
.
require 'fileutils'
require 'shellwords'
def add_folders
FileUtils.mkdir_p(Rails.root.join('views', 'components', 'buttons'))
FileUtils.mkdir_p(Rails.root.join('csv'))
end
def add_file
FileUtils.touch('Rails.root.join('csv', 'user.csv'))
end
def add_readme
File.write(Rails.root.join('README.md'), 'New readme..')
end
after_bundle do
add_folder
add_file
add_readme
end