【发布时间】:2012-11-25 13:49:43
【问题描述】:
目前我正在尝试拆分我的 rake 文件以更好地组织它们。为此,我在assets 目录中添加了一个rake 文件夹,该文件夹为每组任务保存一个rake 文件。
由于我来自 PHP,我只有 非常基本的 Ruby/Rake 知识,并且无法在加载文件后运行我的命名空间默认操作。
app:init 中注释掉的 Rake :: Task ...-string 在我的 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 操作未加载。
【问题讨论】: