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