class CommandKit::Arguments::Argument

Represents a defined argument.

@api private

Attributes

desc[R]

The argument's description.

@return [String]

name[R]

The argument's name.

@return [Symbol]

Public Class Methods

new(name, usage: name.to_s.upcase, required: true, repeats: false, desc: ) click to toggle source

Initializes the argument.

@param [Symbol] name

The name of the argument.

@param [String, nil] usage

The usage string for the argument. Defaults to the argument's name.

@param [Boolean] required

Specifies whether the argument is required or optional.

@param [Boolean] repeats

Specifies whether the argument can be repeated multiple times.

@param [String] desc

The description for the argument.

@yield [(value)]

If a block is given, it will be used to parse the argument's value.
Note: not currently used.

@yieldparam [Object, nil] value

Calls superclass method
# File lib/command_kit/arguments/argument.rb, line 46
def initialize(name, usage:    name.to_s.upcase,
                     required: true,
                     repeats:  false,
                     desc:     )
  super(
    usage:    usage,
    required: required
  )

  @name    = name
  @repeats = repeats
  @desc    = desc
end

Public Instance Methods

repeats?() click to toggle source

Specifies whether the argument can be repeated repeat times.

@return [Boolean]

# File lib/command_kit/arguments/argument.rb, line 65
def repeats?
  @repeats
end
usage() click to toggle source

The usage string for the argument.

@return [String]

# File lib/command_kit/arguments/argument.rb, line 74
def usage
  string = @usage
  string = "#{string} ..." if repeats?
  string = "[#{string}]" if optional?
  string
end