Sto utilizzando gioielliere per creare un gioiello per Rails 3. La gemma contiene un'attività rake e una delle cose che fa è cancellare il DB, quindi sto usando 'database_cleaner' .Richiesta di una gemma all'interno di un'attività gemma
sto specificando la dipendenza gemma all'interno della gemma Gemfile
gem 'database_cleaner'
E nel Rakefile
Jeweler::Tasks.new do |gem|
...
gem.add_dependency 'database_cleaner'
end
Poi dentro lib Ho creato i file my_gem.rb e tasks.rake. Come segue, my_gem.rb:
module MyGem
class Railtie < Rails::Railtie
rake_tasks do
load 'tasks.rake'
end
end
end
E tasks.rake:
task :my_task do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean
end
Ho installato la gemma (sudo rake install), creato un progetto rotaie vuoto e ha aggiunto la dipendenza gemma nelle rotaie Gemspec (gem 'my_gem'
). Ma quando provo a eseguire rake my_task
ottengo l'errore uninitialized constant DatabaseCleaner
.
Ho anche provato ad aggiungere require 'database_cleaner'
dall'interno del compito, che genera l'errore no such file to load -- database_cleaner
e gem 'database_cleaner'
che genera l'errore database_cleaner is not part of the bundle. Add it to Gemfile.
.
C'è un modo per risolvere questo senza aggiungere gem 'database_cleaner'
al Gemspec del progetto rotaie?
Grazie
UPDATE (aggiungendo il link al codice sorgente): https://github.com/jordinl/dummy_tasks
puoi postare mygem.gemspec dalla gemma e il Gemfile.lock dal vuoto app per rails? – johnmcaliley
hey! Ho aggiunto il link al repository github. Grazie! – jordinl