Class: EacCli::Definition::BaseOption

Inherits:
Object
  • Object
show all
Defined in:
lib/eac_cli/definition/base_option.rb,
lib/eac_cli/definition/base_option/initialize_args_parser.rb

Direct Known Subclasses

ArgumentOption, BooleanOption

Defined Under Namespace

Classes: InitializeArgsParser

Constant Summary collapse

DEFAULT_REQUIRED =
false

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_args(args) ⇒ Object



11
12
13
14
# File 'lib/eac_cli/definition/base_option.rb', line 11

def from_args(args)
  p = ::EacCli::Definition::BaseOption::InitializeArgsParser.new(args)
  new(p.short, p.long, p.description, p.options)
end

Instance Method Details

#identifierObject



30
31
32
33
34
35
36
# File 'lib/eac_cli/definition/base_option.rb', line 30

def identifier
  [long, short].each do |v|
    v.to_s.if_present { |vv| return vv.variableize.to_sym }
  end

  raise 'No short or long option to build identifier'
end

#repeat?Boolean

Returns:

  • (Boolean)


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

def repeat?
  options[OPTION_REPEAT]
end

#required?Boolean

Returns:

  • (Boolean)


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

def required?
  return true if options.key?(:required) && options.fetch(:required)
  return false if options.key?(:optional) && options.fetch(:optional)

  DEFAULT_REQUIRED
end

#show_on_usage?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/eac_cli/definition/base_option.rb', line 53

def show_on_usage?
  options[:usage]
end

#to_sObject



49
50
51
# File 'lib/eac_cli/definition/base_option.rb', line 49

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