Class: EacCli::Definition::Positional

Inherits:
OptionOrPositional show all
Defined in:
lib/eac_cli/definition/positional.rb

Constant Summary collapse

DEFAULT_REQUIRED =
true
DEFAULT_VISIBLE =
true

Constants inherited from OptionOrPositional

OptionOrPositional::OPTION_LIST

Instance Method Summary collapse

Methods inherited from OptionOrPositional

#optional?, #raise, #repeat?, #required?, #to_s

Constructor Details

#initialize(name, options = {}) ⇒ Object

Parameters:

  • name (String)
  • options (Hash<Symbol, Object>) (defaults to: {})


17
18
19
# File 'lib/eac_cli/definition/positional.rb', line 17

common_constructor :name, :options, default: [{}] do
  options.assert_valid_keys(self.class.lists.option.values)
end

Instance Method Details

#build_value(new_value, previous_value) ⇒ Array

Parameters:

Returns:

  • (Array)


24
25
26
27
28
29
30
# File 'lib/eac_cli/definition/positional.rb', line 24

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

#default_valueObject

Returns:



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

def default_value
  repeat? ? [] : nil
end

#identifierSymbol

Returns:

  • (Symbol)


38
39
40
# File 'lib/eac_cli/definition/positional.rb', line 38

def identifier
  name.to_s.variableize.to_sym
end

#subcommand?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/eac_cli/definition/positional.rb', line 43

def subcommand?
  options[OPTION_SUBCOMMAND]
end

#visible?Boolean

Returns:

  • (Boolean)


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

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