目前我正在尝试拆分我的 rake 文件以更好地组织它们。为此,我在rake
我的目录中添加了一个文件夹assets
,该文件夹为每组任务保存一个 rake 文件。
由于我来自 PHP,我只有非常基本的 Ruby/Rake 知识,并且无法在加载文件后运行我的命名空间默认操作。
内部注释掉的Rake :: Task ...
-stringapp: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"
这些文件开头的纯文本得到了回显。问题似乎只是加载的 rake 文件中命名空间的:default
操作未加载。