本当に初心者の質問...
私のプロジェクトの多くのアプリには、gem に多くの共有コードがあります。いくつかのアプリの rake タスクで共有されるルーチンをその gem に追加しようとしています。
したがって、gem lib/utilities ディレクトリに cleanup.rb があります。
module Utilities
class Cleanup
def self.perform
puts "Performing cleanup"
end
end
end
次に、アプリの lib/tasks に cleanup.rake があります。
require "utilities/cleanup"
namespace :mynamespace do
task :do_cleanup => :environment do
Utilities::Cleanup.perform
end
end
rake mynamespace:do_cleanup から得られるのは、「初期化されていない定数 Utilities::Cleanup」だけです。
上記のいくつかのバリエーションを試しました。私の gem は bundler で管理していますが、「bundle exec rake ...」でも同じ結果になります。gem "utilities/cleanup"
require の代わりに使ってみました。
(私は、この言語で何よりもモジュールとクラスの間で通信する方法を理解しようとして頭を悩ませていることを誓います!それは常に「ここでどのコードを参照しているのですか?」と「なぜそのクラスが見つからないのですか?」書きました?")