Używam jubilera do stworzenia klejnotu dla Rails 3. Klejnot zawiera zadanie rake i jedną z rzeczy, które robi, jest wyczyszczenie DB, więc używam "database_cleaner" .Wymaganie klejnotu wewnątrz zadania rake gemowego
jestem określające zależność wewnątrz gem gem Gemfile
gem 'database_cleaner'
aw Rakefile
Jeweler::Tasks.new do |gem|
...
gem.add_dependency 'database_cleaner'
end
Następnie wewnątrz lib Utworzyłem pliki my_gem.rb i tasks.rake. Jak wynika, my_gem.rb:
module MyGem
class Railtie < Rails::Railtie
rake_tasks do
load 'tasks.rake'
end
end
end
And tasks.rake:
task :my_task do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean
end
zainstalowałem gem (sudo grabie zainstalować), stworzył projekt pusty szyn i dodaje zależność klejnot w szynach Gemspec (gem 'my_gem'
). Ale kiedy próbuję uruchomić rake my_task
pojawia się błąd uninitialized constant DatabaseCleaner
.
Próbowałem zostały również dodanie require 'database_cleaner'
od wewnątrz tego zadania, co podwyższa błąd no such file to load -- database_cleaner
i gem 'database_cleaner'
że podnosi błąd database_cleaner is not part of the bundle. Add it to Gemfile.
.
Czy istnieje sposób rozwiązania tego problemu bez dodawania gem 'database_cleaner'
do Gemspec projektu rails?
Dzięki
UPDATE (dodając odnośnik do kodu źródłowego): https://github.com/jordinl/dummy_tasks
czy możesz opublikować mygem.gemspec z gem i Gemfile.lock z pustego aplikacja szyn? – johnmcaliley
hej! Dodałem link do repozytorium github. dzięki! – jordinl