class Hanami::CLI::Option

Command line option

@since 0.1.0 @api private

Attributes

name[R]

@since 0.1.0 @api private

options[R]

@since 0.1.0 @api private

Public Class Methods

new(name, options = {}) click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 20
def initialize(name, options = {})
  @name = name
  @options = options
end

Public Instance Methods

aliases() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 27
def aliases
  options[:aliases] || []
end
argument?() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 82
def argument?
  false
end
array?() click to toggle source

@since 0.3.0 @api private

# File lib/hanami/cli/option.rb, line 64
def array?
  type == :array
end
boolean?() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 58
def boolean?
  type == :boolean
end
default() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 70
def default
  options[:default]
end
desc() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 33
def desc
  desc = options[:desc]
  values ? "#{desc}: (#{values.join('/')})" : desc
end
description_name() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 76
def description_name
  options[:label] || name.upcase
end
parser_options() click to toggle source

@since 0.1.0 @api private

rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength

# File lib/hanami/cli/option.rb, line 91
def parser_options
  dasherized_name = Hanami::Utils::String.dasherize(name)
  parser_options  = []

  if boolean?
    parser_options << "--[no-]#{dasherized_name}"
  else
    parser_options << "--#{dasherized_name}=#{name}"
    parser_options << "--#{dasherized_name} #{name}"
  end

  parser_options << Array if array?
  parser_options << values if values
  parser_options.unshift(alias_name) unless alias_name.nil?
  parser_options << desc if desc
  parser_options
end
required?() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 40
def required?
  options[:required]
end
type() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 46
def type
  options[:type]
end
values() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 52
def values
  options[:values]
end

Private Instance Methods

alias_name() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/cli/option.rb, line 115
def alias_name
  aliases.join(" ") if aliases.any?
end