Как получить пользовательскую задачу Rake для запуска в Sinatra?

113
8

* Я хочу получить пользовательскую задачу Rake для запуска в моем приложении Sinatra, но я продолжаю получать rake aborted!
Don't know how to build task 'greet'
.


Здесь пользовательская задача Rake (greet.rake) для цели тестирования:


task :greet do
puts "Hello!"
end

Я положил greet.rake в ./lib/tasks (Rails). Я предполагаю, что Rake не может найти правильный каталог для файла.


Как мне создать пользовательскую задачу Rake для запуска в Sinatra?


Я использую Ruby 2.0.0 и Sinatra 1.4.4.


UPDATE


Теперь Rakefile выглядит следующим образом:


require "./app"
require "sinatra/activerecord/rake"
require "./lib/tasks"

При использовании:


rake greet

Я получаю:


rake aborted!
cannot load such file -- ./lib/tasks
/Users/*/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport- 4.0.1/lib/active_support/dependencies.rb:229:in `block in require'
/Users/*/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport- 4.0.1/lib/active_support/dependencies.rb:214:in `load_dependency'
/Users/*/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.1/lib/active_support/dependencies.rb:229:in `require'
/Users/*/Dropbox/Development/Sinatra/sinatra-mp-experiment/Rakefile:3:in `<top (required)>'
(See full trace by running task with --trace)

спросил(а) 2013-11-19T23:33:00+04:00 6 лет, 10 месяцев назад
1
Решение
191

Создайте Rakefile в своем верхнем каталоге приложения Sinatra, требуйте файл, который содержит эту задачу, которую вы хотите использовать, и вам должно быть хорошо идти.


Edit:


Простое решение меняет ваш Rakefile на:

require "./app"
require "sinatra/activerecord/rake"
Dir.glob('lib/tasks/*.rake').each { |r| load r}

Теперь будет загружен любой файл .rake под lib/tasks.

ответил(а) 2013-11-19T23:36:00+04:00 6 лет, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема