Class: EacCli::Definition::OptionOrPositional Abstract

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

Overview

This class is abstract.

Direct Known Subclasses

Option, Positional

Constant Summary collapse

OPTION_LIST =
%i[optional repeat required].freeze

Instance Method Summary collapse

Instance Method Details

#optional?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/eac_cli/definition/option_or_positional.rb', line 15

def optional?
  !required?
end

#raise(*args) ⇒ Object



20
21
22
# File 'lib/eac_cli/definition/option_or_positional.rb', line 20

def raise(*args)
  ::Kernel.raise ::EacCli::Definition::Error, *args
end

#repeat?Boolean

Returns:

  • (Boolean)


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

def repeat?
  options[:repeat] ? true : false
end

#required?Boolean

Returns:

  • (Boolean)


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

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

  self.class.const_get('DEFAULT_REQUIRED')
end

#to_sString

Returns:

  • (String)


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

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