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: {})


14
15
16
# File 'lib/eac_cli/definition/positional.rb', line 14

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)


21
22
23
24
25
26
27
# File 'lib/eac_cli/definition/positional.rb', line 21

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:



30
31
32
# File 'lib/eac_cli/definition/positional.rb', line 30

def default_value
  repeat? ? [] : nil
end

#identifierSymbol

Returns:

  • (Symbol)


35
36
37
# File 'lib/eac_cli/definition/positional.rb', line 35

def identifier
  name.to_s.variableize.to_sym
end

#subcommand?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/eac_cli/definition/positional.rb', line 40

def subcommand?
  options[OPTION_SUBCOMMAND]
end

#visible?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/eac_cli/definition/positional.rb', line 45

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