Các mã bên dưới công trình, nhưng tôi tự nâng lỗi lập luận cho các đối số cần sử dụng fetch
, khi tôi muốn xây dựng các đối số cần thiết vào sytax OptionParser mẹ đẻ cho các thông số yêu cầu:Làm thế nào để tạo ra OptionParser yêu cầu đối số
# ocra script.rb -- --type=value
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("--type [TYPE]",String, [:gl, :time], "Select Exception file type (gl, time)") do |t|
options["type"] = t
end
opts.on("--company [TYPE]",String, [:jaxon, :doric], "Select Company (jaxon, doric)") do |t|
options["company"] = t
end
end.parse!
opts = {}
opts['type'] = options.fetch('type') do
raise ArgumentError,"no 'type' option specified as a parameter (gl or time)"
end
opts['company'] = options.fetch('company') do
raise ArgumentError,"no 'company' option specified as a parameter (doric or jaxon)"
end
Tôi đã quyết định sử dụng đá quý ruby có tên https://github.com/JEG2/highline này có một trình đơn cli dsl và các thông số bắt buộc. – lukemh
Công việc hay. Một đồng nghiệp của tôi cũng đã viết một viên ngọc được gọi là hộ tống có thể thiết lập các thông số cần thiết cho các ứng dụng CLI: https://github.com/skorks/escort#required-arguments –