как использовать getoptlog в ruby - PullRequest
0 голосов
/ 24 июня 2010
opts = GetoptLong.new(
  [ '--help', '-h', GetoptLong::NO_ARGUMENT ],
  [ '--repeat', '-n', GetoptLong::REQUIRED_ARGUMENT ],
  [ '--name', GetoptLong::OPTIONAL_ARGUMENT ]
)

У меня есть такая декларация для optlong. Может кто-нибудь сказать мне, работает ли opts как массив или как хеш, а также какие значения в opts. Еще одна вещь

opts.each do |opt,args|

Какие значения в opt и args соответственно?

Пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 24 июня 2010

opt содержит «длинную» версию опции.arg содержит соответствующий аргумент.Я обычно пишу что-то похожее на код ниже, когда использую getoptlong.

opts.each do |opt, arg|
  case opt
  when '--help'
    RDoc::usage
    exit(0)
  when '--repeat'
    puts "--repeat argument was #{arg}"
  end
end

Так что если вы введете foo.rb -n 8, arg будет содержать 8, когда выполняется ветвь --repeat.Надеюсь, это поможет

0 голосов
/ 24 июня 2010

неавтоматического, Arg:

opt - фактическая переданная опция, которая в вашем случае будет help / repeat / name. Аргумент будет значением аргумента.

Например, если вы дадите

- имя amit, тогда вы получите arg value = amit

Кроме того, наиболее вероятно, что options - это хеш.

NO_ARGUMENT: требуется только '-h' / '- help', но не принимает аргументов.

REQUIRED_ARGUMENT: необходимо указать аргумент. Например, просто '--repeat' будет отклонено.

OPTIONAL_ARGUMENT: вы можете либо указать аргумент опции, либо нет. например, думать о лс. Вы можете сказать «ls», и он перечислит содержимое каталога, или вы можете сказать «ls. / / Ls» ...

РЕДАКТИРОВАТЬ: Пожалуйста, посмотрите на это для краткого объяснения Getopt (оба варианта). http://ruby.about.com/od/advancedruby/a/commandoptions.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...