module Getopt
Constants
- VERSION
Public Class Methods
list(argv, opts, longopts, abbreviation: true, allow_empty_optarg: true, optional_short: true, permute: false, program_name: nil, stop_by_double_hyphen: true, use_exception: false)
click to toggle source
# File trad-getopt.rb, line 81 def self.list argv, opts, longopts, abbreviation: true, allow_empty_optarg: true, optional_short: true, permute: false, program_name: nil, stop_by_double_hyphen: true, use_exception: false # error_message: # parse: argv = argv.dup xargv = [] loop { ret = getopt argv, opts, longopts, error_message: false, parse: true, # abbreviation: abbreviation, allow_empty_optarg: allow_empty_optarg, optional_short: optional_short, permute: permute, program_name: program_name, stop_by_double_hyphen: stop_by_double_hyphen, use_exception: use_exception if ret == :stop xargv.push "--" xargv.concat argv break end if ret.nil? xargv.push argv.shift else case ret.first when :error xargv.push ret when :short case ret[1] when :no_argument xargv.push ret[2] when :required_argument xargv.push %|#{ret[2]} "#{ret[3]}"| when :optional_argument if ret[3] xargv.push %|#{ret[2]}"#{ret[3]}"| else xargv.push ret[2] end end when :long case ret[1] when :no_argument xargv.push ret[2] when :required_argument xargv.push %|#{ret[2]}="#{ret[3]}"| when :optional_argument if ret[3] xargv.push %|#{ret[2]}="#{ret[3]}"| else xargv.push ret[2] end end end end break if argv.empty? } xargv end
parse(argv, opts, longopts, abbreviation: true, allow_empty_optarg: true, optional_short: true, permute: false, program_name: nil, stop_by_double_hyphen: true, use_exception: false)
click to toggle source
# File trad-getopt.rb, line 40 def self.parse argv, opts, longopts, abbreviation: true, allow_empty_optarg: true, optional_short: true, permute: false, program_name: nil, stop_by_double_hyphen: true, use_exception: false # error_message: # parse: argv = argv.dup xargv = [] loop { ret = getopt argv, opts, longopts, error_message: false, parse: true, # abbreviation: abbreviation, allow_empty_optarg: allow_empty_optarg, optional_short: optional_short, permute: permute, program_name: program_name, stop_by_double_hyphen: stop_by_double_hyphen, use_exception: use_exception if ret == :stop xargv.push :stop xargv.concat argv break elsif ret.nil? xargv.push argv.shift else xargv.push ret end break if argv.empty? } xargv end