Class: Ace::Support::Cli::Models::Option

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/support/cli/models/option.rb

Constant Summary collapse

VALID_TYPES =
%i[string integer float boolean array hash].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, type: :string, default: nil, desc: "", aliases: [], values: nil, required: false, repeat: false) ⇒ Option

Returns a new instance of Option.



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/ace/support/cli/models/option.rb', line 12

def initialize(name:, type: :string, default: nil, desc: "", aliases: [], values: nil, required: false, repeat: false)
  @name = name.to_sym
  @type = type.to_sym
  @default = default
  @desc = desc
  @aliases = normalize_aliases(Array(aliases))
  @values = values
  @required = required
  @repeat = repeat
  validate!
end

Instance Attribute Details

#aliasesObject (readonly)

Returns the value of attribute aliases.



10
11
12
# File 'lib/ace/support/cli/models/option.rb', line 10

def aliases
  @aliases
end

#defaultObject (readonly)

Returns the value of attribute default.



10
11
12
# File 'lib/ace/support/cli/models/option.rb', line 10

def default
  @default
end

#descObject (readonly)

Returns the value of attribute desc.



10
11
12
# File 'lib/ace/support/cli/models/option.rb', line 10

def desc
  @desc
end

#nameObject (readonly)

Returns the value of attribute name.



10
11
12
# File 'lib/ace/support/cli/models/option.rb', line 10

def name
  @name
end

#repeatObject (readonly)

Returns the value of attribute repeat.



10
11
12
# File 'lib/ace/support/cli/models/option.rb', line 10

def repeat
  @repeat
end

#requiredObject (readonly)

Returns the value of attribute required.



10
11
12
# File 'lib/ace/support/cli/models/option.rb', line 10

def required
  @required
end

#typeObject (readonly)

Returns the value of attribute type.



10
11
12
# File 'lib/ace/support/cli/models/option.rb', line 10

def type
  @type
end

#valuesObject (readonly)

Returns the value of attribute values.



10
11
12
# File 'lib/ace/support/cli/models/option.rb', line 10

def values
  @values
end

Instance Method Details

#long_switchObject



24
25
26
# File 'lib/ace/support/cli/models/option.rb', line 24

def long_switch
  "--#{name.to_s.tr("_", "-")}"
end