वर्तमान में मैं उन्हें बेहतर बनाने के लिए अपनी रेक फ़ाइलों को विभाजित करने की कोशिश कर रहा हूं। इसके लिए, मैंने rake
फ़ोल्डर को अपने assets
डीआईआर में जोड़ा है, जिसमें कार्यों के प्रत्येक समूह के लिए एक रेक फ़ाइल है।लोड फ़ाइलों को लोड करें और अन्य फ़ाइलों से कार्यों को चलाएं
जैसा कि मैं PHP से आ रहा हूं, मेरे पास केवल बहुत मूल रूबी/रेक का ज्ञान है और फ़ाइल लोड करने के बाद मेरे नेमस्पेस डिफ़ॉल्ट क्रिया को नहीं चलाया जा सकता है।
बाहर commmented Rake :: Task ...
app:init
अंदर -string सीएल पर एक त्रुटि फेंकता है मुझ पर:
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
कार्रवाई लोड नहीं हो रही है।
इस बारे में कभी नहीं पता था। धन्यवाद! – Andrew
एक सुधार: आप उल्लेख कर सकते हैं कि 'लोड' फ़ाइल का उपयोग करके एकल फ़ाइलों को आसानी से लोड किया जा सकता है। आरबी "'। तो यह स्वीकार्य जवाब होना चाहिए। – Overbryd
यह उत्तर संरक्षित किया जाना चाहिए। मैं इस 'rakelib/'निर्देशिका – Pred