Как использовать 'конфликты' с ruby trolloop
Привет! Я использую троллоп для анализа параметров командной строки в ruby, у меня есть четыре взаимоисключающих параметра, и всегда требуется один параметр.
Я застрял, пытаясь выяснить, как обеспечить передачу только одного из четырех вариантов. Если вызывается с несколькими вариантами, я хочу, чтобы показалась справка по использованию (обучить?).
Я вижу из источника троллейбусов что-то, называемое конфликтами
http://www.rubydoc.info/gems/trollop/2.1.2/Trollop/Parser
звучит так, будто он делает то, что я хочу (?), но я не могу понять, как правильно его использовать.
Моя нынешняя строфа это эффективно
require 'trollop'
opts = Trollop::options do
opt :last, "last"
opt :first, "first"
opt :file, "filename",
:type => String
opt :date, "date to read",
:type => Date
end
Trollop::die :file, "must exist" unless File.exist?(opts[:file]) if opts[:file]
благодарю вас
1 ответ
Решение
Вы можете добавить conflicts
как линия в вашем do
блок, как это:
require 'trollop'
opts = Trollop::options(ARGV) do
opt :last, "last"
opt :first, "first"
opt :file, "filename", :type => String
opt :date, "date to read", :type => Date
conflicts :last, :first
end
puts "Your Options Are: "
puts opts
Тогда вы получите следующий вывод:
ruby test_options.rb --last Last --first First
Error: --last conflicts with --first.
Try --help for help.