J'utilise Sinatra, et je voulais mettre en place certaines des tâches de rake de commodité que Rails a, en particulier rake db:seed
.Comment faire pour que les tâches Rake s'exécutent sous mon application/environnement Sinantra?
Ma première passe était le suivant:
namespace :db do
desc 'Load the seed data from db/seeds.rb'
task :seed do
seed_file = File.join(File.dirname(__FILE__), 'db', 'seeds.rb')
system("racksh < #{seed_file}")
end
end
racksh
est un joyau qui console Rails imite. Donc, je ne faisais que nourrir le code dans le fichier de départ directement dans le fichier. Cela fonctionne, mais ce n'est évidemment pas idéal. Ce que je voudrais faire est de créer une tâche de l'environnement qui permet aux commandes à exécuter dans l'application Sinanta/environnement, comme ceci:
task :environment do
# what goes here?
end
task :seed => :environment do
seed_file = File.join(File.dirname(__FILE__), 'db', 'seeds.rb')
load(seed_file) if File.exist?(seed_file)
end
Mais ce que je ne peux pas comprendre comment mettre en place l'environnement donc les tâches de rake peuvent fonctionner en dessous. Toute aide serait très appréciée.