class Dry::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/dry/cli/option.rb, line 20
def initialize(name, options = {})
  @name = name
  @options = options
end

Public Instance Methods

alias_names() click to toggle source

@since 0.1.0 @api private

# File lib/dry/cli/option.rb, line 109
def alias_names
  aliases
    .map { |name| name.gsub(/^-{1,2}/, "") }
    .compact
    .uniq
    .map { |name| name.size == 1 ? "-#{name}" : "--#{name}" }
    .map { |name| boolean? ? name : "#{name} VALUE" }
end
aliases() click to toggle source

@since 0.1.0 @api private

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

@since 0.1.0 @api private

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

@since 0.3.0 @api private

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

@since 0.1.0 @api private

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

@since 0.1.0 @api private

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

@since 0.1.0 @api private

# File lib/dry/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/dry/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

# File lib/dry/cli/option.rb, line 89
def parser_options
  dasherized_name = Inflector.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_names) if aliases.any?
  parser_options << desc if desc
  parser_options
end
required?() click to toggle source

@since 0.1.0 @api private

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

@since 0.1.0 @api private

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

@since 0.1.0 @api private

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