我是Ruby的新手,並試圖編寫一個優雅的方法來設置程序的工作目錄。所有文件訪問都是相對於此路徑。如果使用OptionParser未定義路徑,我該如何調用幫助?
該程序可能會也可能不會從Git倉庫中運行。我也想提供一個覆蓋路徑的方法。
我正在使用OptionParser,並且難以正確設置選項。看起來work_area
總是被設置爲Git頂層,無論我是否使用--work_area
標誌。我嘗試在opts.on
內使用||
運算符,但這也不起作用。
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: mysprogram.rb [options]"
options[:work_area] = `git rev-parse --show-toplevel --quiet 2>/dev/null`
opts.on("-d", "--work_area", String, "Override default work area.") do |wa|
options[:work_area] = wa
end
if options[:work_area]
puts "Work area is " + options[:work_area]
else
puts "ERROR: Valid work directory not found or specified."
puts opts
exit
end
opts.on_tail("-h", "--help", "Show this message") do
puts opts
exit
end
end.parse!
任何關於我做錯了什麼的建議,或者如何使這更像Ruby,將不勝感激。
使opts不工作,因爲它在解析器do/end之外。我試着把選項[:幫助],但結果是「無」。有什麼想法嗎? –
這是由於我的一個複製和粘貼錯誤。這應該會好一點。 –