Class: KXI::CLI::AnonymousArgument

Inherits:
Argument
  • Object
show all
Defined in:
lib/kxi/cli/anonymous_argument.rb

Overview

Represents anonymous argument (eg.: verb VALUE)

Instance Method Summary collapse

Methods inherited from Argument

#description, #name, #order, #required?

Constructor Details

#initialize(nm, desc, rq = true, df = nil, var = false, &validator) ⇒ AnonymousArgument

Instantiates the KXI::CLI::AnonymousArgument class

Parameters:

  • nm (String)

    Name of argument

  • desc (String)

    Description of argument

  • rq (Bool) (defaults to: true)

    Indicates whether argument is required

  • df (defaults to: nil)

    Default value of argument

  • var (Bool) (defaults to: false)

    Indicates whether argument is variadic



37
38
39
40
41
42
# File 'lib/kxi/cli/anonymous_argument.rb', line 37

def initialize(nm, desc, rq = true, df = nil, var = false, &validator)
	super(nm, desc, rq, 5 - (var ? 1 : 0) - (rq ? 0 : 1))
	@def = df
	@var = var
	@val = validator
end

Instance Method Details

#defaultObject

Gets default value of argument

Returns:

  • (Object)

    Default value of argument



9
10
11
# File 'lib/kxi/cli/anonymous_argument.rb', line 9

def default
	@def
end

#headlineString

Gets full descriptive name of argument

Returns:

  • (String)

    Full name of argument



27
28
29
# File 'lib/kxi/cli/anonymous_argument.rb', line 27

def headline
	super.upcase
end

#syntaxString

Gets syntax of argument

Returns:

  • (String)

    Syntax of argument



21
22
23
# File 'lib/kxi/cli/anonymous_argument.rb', line 21

def syntax
	"#{required? ? '<' : '['}#{name}#{required? ? '>' : ']'}"
end

#validate(val) ⇒ Object

Validates value of argument

Parameters:

  • val (String, Array<String>)

    Value of argument



46
47
48
# File 'lib/kxi/cli/anonymous_argument.rb', line 46

def validate(val)
	@val.call(val) if @val != nil
end

#variadic?Bool

Gets whether argument is variadic

Returns:

  • (Bool)

    True if argument is variadic; false otherwise



15
16
17
# File 'lib/kxi/cli/anonymous_argument.rb', line 15

def variadic?
	@var
end