Class: Climate::Argument

Inherits:
Object
  • Object
show all
Includes:
Described
Defined in:
lib/climate/parser.rb

Overview

argument definition is stored in these

Instance Attribute Summary collapse

Attributes included from Described

#name

Instance Method Summary collapse

Methods included from Described

#description

Constructor Details

#initialize(name, description, options = {}) ⇒ Argument

Returns a new instance of Argument.



77
78
79
80
81
82
# File 'lib/climate/parser.rb', line 77

def initialize(name, description, options={})
  super
  @required    = options.fetch(:required, ! options.has_key?(:default))
  @multi       = options.fetch(:multi, false)
  @default     = options.fetch(:default, nil)
end

Instance Attribute Details

#defaultObject (readonly)

Returns the value of attribute default.



75
76
77
# File 'lib/climate/parser.rb', line 75

def default
  @default
end

Instance Method Details

#multi?Boolean

Returns:

  • (Boolean)


86
# File 'lib/climate/parser.rb', line 86

def multi?    ; @multi      ; end

#optional?Boolean

Returns:

  • (Boolean)


85
# File 'lib/climate/parser.rb', line 85

def optional? ; ! required? ; end

#required?Boolean

Returns:

  • (Boolean)


84
# File 'lib/climate/parser.rb', line 84

def required? ; @required   ; end

#usageObject



88
89
90
91
92
# File 'lib/climate/parser.rb', line 88

def usage
  string = "<#{name}>"
  string += '...' if multi?
  optional??  "[#{string}]" : string
end