aşağıdaki gibi aynı ad altındaki iki Rake görevleri var: Gördüğünüz gibi,tırmık görev değişkeni
namespace :db do
task :first_task => :environment do
server_name='myserver'
connect_to(server_name)
end
task :second_task => :environment do
server_name='myserver'
do_something_with(server_name)
end
end
hem görevler aynı ad altındadır ve her iki görevler server_name='myserver'
sabit değişken kullanın.
server_name
değişkenini aynı ad alanı altında iki kez tanımlamak gerçekten çirkin görünüyor, bu değişkeni tanımlayan bir yer nasıl olabilir, böylece her iki görevde de kullanılabilir mi?
Hayır, bunu yapmamalısınız. Sebebi, bilmediğin, ivarın nereye gittiği. Ben de yok. Bir komisyon görevi, sınıf değil, bir blok kullanılarak bildirilir ve bu nedenle ivar'ın içeriği belirsizdir. – meandre
@meandre Bir örnek değişkeni bu şekilde kullanmayla ilgili sorun nedir? Nerede yanlış gidebileceğini gösterebilir misin? Daha iyi bir önerin var mı? Daha ayrıntılı tartışma için http://daneharrigan.com/2010/06/rake-tasks-102/ adresindeki "Görevlerdeki Örnek Değişkenleri" bölümüne bakın. –
@meandre Aslında, gösterdiğim şekilde tanımlanan örnek değişkenler, "Rake.application.in_namespace (name, & block)" bağlamında değerlendirilir (bkz. Https://github.com/jimweirich/rake/blob/v10.3.2 /lib/rake/dsl_definition.rb#L140). Endişenizin ne olduğundan emin değilim. –