0

いくつかのデフォルトを定義する別の関数で OptionParser をラップしたいのですが、バナーを上書きし、セパレーターを追加し、新しいオプションを追加することができます。関連情報を on メソッドに渡すのに苦労しています。

行を修正する方法について何かアドバイスはありますoptions.each { |o, p| opts.on(o, &p) }か?

def my_opts (banner: "Usage: ruby #{File::basename($0)} [options]", separators: [], options: {})
    option_parser = OptionParser.new do |opts|
      opts.banner = banner
      separators.each {|s| opts.separator s }
      opts.separator ''
      opts.separator 'Options:'
      opts.on('-u', '--user USER', 'Username for authentication.') { |user| @user = user }
      options.each { |o, p| opts.on(o, &p) }
      opts.on_tail('--help', 'Print this help message.') { puts opts; exit }
    end
    return option_parser
end

opts = {['-f', '--file FILE', 'File to read']=>Proc.new { |f| @f=file } }
stdopts = my_opts( options: opts) 
4

1 に答える 1

0

はっ!理解した!問題の行は次のようにする必要があります。options.each { |o,p| opts.on(*o, &p) }

于 2014-11-24T01:44:54.780 に答える