Estoy usando joyero para crear una gema para Rails 3. La gema contiene una tarea de rastrillo y una de las cosas que hace es limpiar la base de datos, entonces estoy usando 'database_cleaner' .Exigir una gema dentro de la tarea de rastrillo de una gema
estoy especificando la dependencia joya en el interior de la gema Gemfile
gem 'database_cleaner'
Y en el Rakefile
Jeweler::Tasks.new do |gem|
...
gem.add_dependency 'database_cleaner'
end
A continuación, en el interior lib He creado los archivos my_gem.rb y tasks.rake. En la siguiente manera, my_gem.rb:
module MyGem
class Railtie < Rails::Railtie
rake_tasks do
load 'tasks.rake'
end
end
end
Y tasks.rake:
task :my_task do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean
end
He instalado la gema (rake sudo instalar), un proyecto creado carriles de vacío y se añade la dependencia joya en los rieles Gemspec (gem 'my_gem'
). Pero cuando intento ejecutar rake my_task
obtengo el error uninitialized constant DatabaseCleaner
.
También he intentado añadir require 'database_cleaner'
desde el interior de la tarea, lo que eleva el error no such file to load -- database_cleaner
y gem 'database_cleaner'
que eleva el error database_cleaner is not part of the bundle. Add it to Gemfile.
.
¿Hay alguna manera de resolver esto sin agregar gem 'database_cleaner'
al Gemspec del proyecto de rieles?
Gracias
ACTUALIZACIÓN (añadiendo el enlace al código fuente): https://github.com/jordinl/dummy_tasks
puedes publicar mygem.gemspec desde la gema y Gemfile.lock desde la vacía aplicación carriles? – johnmcaliley
hey! He agregado el enlace al repositorio de github. ¡Gracias! – jordinl