Янв 15
Изучаю руби и рельсы. Пишу сам себе памятки. Итак, создаем rake-задание.
Для этого в директорию lib/tasks кидаем файл с расширением .rake. Для определенности пусть это будет print.rake
namespace :print do taskne do attention "Раз!" end task :two do attention "Два!" end task :three do attention "Три!" end task :first_user => :environment do puts User.find(1).first_name end task :all => [:one, :two, :three] def attention(msg) puts "Считаем: #{msg}" end end
Вызывается все это так:
rake print:three
Считаем: Три!
rake print:all
Считаем: Раз!
Считаем: Два!
Считаем: Три!
Разберем подробнее:
- Заключаем наши задания в неймспейс, потом вызываем задание как <неймспейс>:<задание>
- Использование оператора => в объявлении задания определяет зависимости.
- Чтобы определить множественные зависимости, используем массив(задание :all в примере выше)
- зависимость :environment загрузит окружение Rails (задание :first_user)
- Если задание пустое, то его не нужно заключать в блоки (задание print:all)
- Вы можете объявлять новые методы для повторного использования кода (метод attention)
Подглядел на http://blog.stonean.com/2007/12/custom-rake-tasks.html


Свежие комментарии