Class: EacCli::Definition::PositionalArgument

Inherits:
Object
  • Object
show all
Defined in:
lib/eac_cli/definition/positional_argument.rb

Constant Summary collapse

DEFAULT_REQUIRED =
true
DEFAULT_VISIBLE =
true

Instance Method Summary collapse

Instance Method Details

#build_value(new_value, previous_value) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/eac_cli/definition/positional_argument.rb', line 17

def build_value(new_value, previous_value)
  if previous_value.is_a?(::Array)
    previous_value + [new_value]
  else
    new_value
  end
end

#default_valueObject



25
26
27
# File 'lib/eac_cli/definition/positional_argument.rb', line 25

def default_value
  repeat? ? [] : nil
end

#identifierObject



29
30
31
# File 'lib/eac_cli/definition/positional_argument.rb', line 29

def identifier
  name.to_s.variableize.to_sym
end

#optional?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/eac_cli/definition/positional_argument.rb', line 33

def optional?
  !required?
end

#repeat?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/eac_cli/definition/positional_argument.rb', line 37

def repeat?
  options[OPTION_REPEAT]
end

#required?Boolean

Returns:

  • (Boolean)


41
42
43
44
45
46
# File 'lib/eac_cli/definition/positional_argument.rb', line 41

def required?
  return true if options.key?(OPTION_REQUIRED) && options.fetch(OPTION_REQUIRED)
  return false if options.key?(OPTION_OPTIONAL) && options.fetch(OPTION_OPTIONAL)

  DEFAULT_REQUIRED
end

#subcommand?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/eac_cli/definition/positional_argument.rb', line 48

def subcommand?
  options[OPTION_SUBCOMMAND]
end

#to_sObject



52
53
54
# File 'lib/eac_cli/definition/positional_argument.rb', line 52

def to_s
  "#{self.class.name.demodulize}[#{identifier}]"
end

#visible?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/eac_cli/definition/positional_argument.rb', line 56

def visible?
  options.key?(OPTION_VISIBLE) ? options.fetch(OPTION_VISIBLE) : DEFAULT_VISIBLE
end