目前我試圖拆分我的耙文件以更好地組織它們。爲此,我在assets
目錄中添加了一個rake
文件夾,該文件夾爲每組任務保存一個rake文件。加載耙文件並從其他文件運行任務
由於我來自PHP,我只有非常基本的瞭解Ruby/Rake,並且無法在加載文件後運行我的命名空間默認操作。
的commmented了Rake :: Task ...
內app:init
-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"
得到迴應。問題似乎只有是:default
加載的rake文件中的名稱空間的操作未加載。
從來不知道這一點。謝謝! – Andrew
一個改進:你可以提到單個文件可以很容易地使用'load'file.rb「'加載。那麼這應該是被接受的答案。 – Overbryd
這個答案應該受到保護。我從來不知道這個'rakelib /'目錄 – Pred