Class: OptionParser::List (Ruby 2.4.2)
Description: Class : OptionParser::List - Ruby 2.4.2

Support for the Ruby 2.4 series has ended. See here for reference.

### Home Classes Methods

### In Files

- optparse.rb

### Parent

Object

### Methods

- ::new
- #accept
- #append
- #complete
- #each_option
- #prepend
- #reject
- #search
- #summarize

### Class/Module Index

Quicksearch

- Object
- OptionParser
- OptionParser::AC
- OptionParser::Acceptables
- OptionParser::AmbiguousArgument
- OptionParser::AmbiguousOption
- OptionParser::Arguable
- OptionParser::CompletingHash
- OptionParser::Completion
- OptionParser::InvalidArgument
- OptionParser::InvalidOption
- OptionParser::List
- OptionParser::MissingArgument
- OptionParser::NeedlessArgument
- OptionParser::OptionMap
- OptionParser::ParseError
- OptionParser::Switch
- OptionParser::Switch::NoArgument
- OptionParser::Switch::OptionalArgument
- OptionParser::Switch::PlacedArgument
- OptionParser::Switch::RequiredArgument

No matching classes.

# OptionParser::List

Simple option list providing mapping from short and/or long option string to `OptionParser::Switch` and mapping from acceptable argument to matching pattern and converter pair. Also provides summary feature.

### Attributes

atype[R]

Map from acceptable argument types to pattern and converter pairs.

list[R]

`List` of all switches and summary string.

long[R]

Map from long style option switches to actual switch objects.

short[R]

Map from short style option switches to actual switch objects.

### Public Class Methods

new() click to toggle source

Just initializes all instance variables.

                   # File optparse.rb, line 742
    def initialize
      @atype = {}
      @short = OptionMap.new
      @long = OptionMap.new
      @list = []
    end

### Public Instance Methods

accept(t, pat = /.*/m, &block) click to toggle source

See `OptionParser.accept`.

                   # File optparse.rb, line 752
    def accept(t, pat = /.*/m, &block)
      if pat
        pat.respond_to?(:match) or
          raise TypeError, "has no `match'", ParseError.filter_backtrace(caller(2))
      else
        pat = t if t.respond_to?(:match)
      end
      unless block
        block = pat.method(:convert).to_proc if pat.respond_to?(:convert)
      end
      @atype[t] = [pat, block]
    end

append(*args) click to toggle source

Appends `switch` at the tail of the list, and associates short, long and negated long options. Arguments are:

`switch`

  `OptionParser::Switch` instance to be inserted.

`short_opts`

  `List` of short style options.

`long_opts`

  `List` of long style options.

`nolong_opts`

  `List` of long style options with “no-” prefix.

    append(switch, short_opts, long_opts, nolong_opts)

                   # File optparse.rb, line 816
    def append(*args)
      update(*args)
      @list.push(args[0])
    end

complete(id, opt, icase = false, *pat, &block) click to toggle source

Searches list `id` for `opt` and the optional patterns for completion `pat`. If `icase` is true, the search is case insensitive. The result is returned or yielded if a block is given. If it isn't found, nil is returned.

                   # File optparse.rb, line 838
    def complete(id, opt, icase = false, *pat, &block)
      __send__(id).complete(opt, icase, *pat, &block)
    end

each_option(&block) click to toggle source

Iterates over each option, passing the option to the `block`.

                   # File optparse.rb, line 845
    def each_option(&block)
      list.each(&block)
    end

prepend(*args) click to toggle source

Inserts `switch` at the head of the list, and associates short, long and negated long options. Arguments are:

`switch`

  `OptionParser::Switch` instance to be inserted.

`short_opts`

  `List` of short style options.

`long_opts`

  `List` of long style options.

`nolong_opts`

  `List` of long style options with “no-” prefix.

    prepend(switch, short_opts, long_opts, nolong_opts)

                   # File optparse.rb, line 800
    def prepend(*args)
      update(*args)
      @list.unshift(args[0])
    end

reject(t) click to toggle source

See `OptionParser.reject`.

                   # File optparse.rb, line 768
    def reject(t)
      @atype.delete(t)
    end

search(id, key) click to toggle source

Searches `key` in `id` list. The result is returned or yielded if a block is given. If it isn't found, nil is returned.

                   # File optparse.rb, line 825
    def search(id, key)
      if list = __send__(id)
        val = list.fetch(key) {return nil}
        block_given? ? yield(val) : val
      end
    end

summarize(*args, &block) click to toggle source

Creates the summary table, passing each line to the `block` (without newline). The arguments `args` are passed along to the summarize method which is called on every option.

                   # File optparse.rb, line 854
    def summarize(*args, &block)
      sum = []
      list.reverse_each do |opt|
        if opt.respond_to?(:summarize) # perhaps OptionParser::Switch
          s = []
          opt.summarize(*args) {|l| s << l}
          sum.concat(s.reverse)
        elsif !opt or opt.empty?
          sum << ""
        elsif opt.respond_to?(:each_line)
          sum.concat([*opt.each_line].reverse)
        else
          sum.concat([*opt.each].reverse)
        end
      end
      sum.reverse_each(&block)
    end