現在、rake ファイルを分割して整理しなおしています。このために、タスクのグループごとに 1 つの rake ファイルを保持するrake
フォルダーを dir に追加しました。assets
私はPHPから来たので、非常に基本的なRuby/Rake の知識がないため、ファイルを読み込んだ後に名前空間のデフォルト アクションを実行できません。
Rake :: Task ...
内部のコメントアウトされた文字列app:init
により、CL でエラーが発生します。
rake aborted! uninitialized constant TASK
これが名前空間/クラスです (これが正しい言葉であれば)。
task :default => [ 'app:init' ]
namespace :app do
rake_dir = "#{Dir.pwd}/assets/rake/"
rake_files = FileList.new( "#{rake_dir}*" )
desc "Loads rake modules (Default action)"
task :init do
puts "\t Importing rake files for processing"
puts "\t loading..."
rake_files.each() { |rake|
puts "\t #{rake}"
require rake
# @link rubular.com
name = rake.split( rake_dir ).last.gsub( /.rb\z/, '' )
puts "\t #{name}"
#Rake :: Task[ "#{name}:default" ].invoke
}
end
end
前もって感謝します。
編集:puts "file loaded"
少なくとも、ファイルの先頭のプレーンテキストがエコーされるので、ファイルがロードされることは確かです。問題は、のみ:default
読み込まれた rake ファイル内の名前空間のアクションが読み込まれていない可能性があります。
ベストアンサー1
rakelib/
デフォルトで読み込まれるフォルダーにタスクを配置するrake
か、次の方法で特定のフォルダーを追加することができますRakefile
。
Rake.add_rakelib 'lib/tasks'