module CommandKit::Arguments::ClassMethods

Defines class-level methods.

Public Instance Methods

argument(name,**kwargs) click to toggle source

Defines an argument for the class.

@param [Symbol] name

The name of the argument.

@param [Hash{Symbol => Object}] kwargs

Keyword arguments.

@option kwargs [String, nil] usage

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

@option kwargs [Boolean] required

Specifies whether the argument is required or optional.

@option kwargs [Boolean] repeats

Specifies whether the argument can be repeated multiple times.

@option kwargs [String] desc

The description for the argument.

@return [Argument]

The newly defined argument.

@example Define an argument:

argument :bar, desc: "Bar argument"

@example With a custom usage string:

option :bar, usage: 'BAR',
             desc: "Bar argument"

@example With a custom type:

argument :bar, desc: "Bar argument"

@example With a default value:

argument :bar, default: "bar.txt",
               desc: "Bar argument"

@example An optional argument:

argument :bar, required: true,
               desc: "Bar argument"

@example A repeating argument:

argument :bar, repeats: true,
               desc: "Bar argument"

@api public

# File lib/command_kit/arguments.rb, line 143
def argument(name,**kwargs)
  arguments[name] = Argument.new(name,**kwargs)
end
arguments() click to toggle source

All defined arguments for the class.

@return [Hash{Symbol => Argument}]

The defined argument for the class and it's superclass.

@api semipublic

# File lib/command_kit/arguments.rb, line 87
def arguments
  @arguments ||= if superclass.kind_of?(ClassMethods)
                   superclass.arguments.dup
                 else
                   {}
                 end
end