class Bogo::Cli::Parser::Flag

Attributes

callable[R]

@return [Proc] block to execute on flag called

default[R]

@return [String] default value

description[R]

@return [String] flag description

long_name[R]

@return [String] long flag

short_name[R]

@return [String] short flag

Public Class Methods

new(long_name:, short_name: nil, description: nil, default: nil, callable: nil ) click to toggle source

Create a new flag

@param short_name [String, Symbol] Single character flag @param long_name [String, Symbol] Full flag name @param description [String] Description of flag @param default [Object] Default value for flag @return Flag

# File lib/bogo-cli/parser.rb, line 267
def initialize(long_name:,
  short_name: nil,
  description: nil,
  default: nil,
  callable: nil
)
  if short_name
    short_name = short_name.to_s
    short_name = short_name[1, short_name.size] if
      short_name.start_with?('-')
    raise ArgumentError,
      "Flag short name must be single character (flag: #{short_name})" if
      short_name.size > 1
  end
  @short_name = short_name
  @long_name = long_name.to_s.sub(/^-+/, '').gsub('_', '-')
  @description = description
  @default = default
  @callable = callable
end

Public Instance Methods

boolean?() click to toggle source

@return [Boolean] flag is boolean value

# File lib/bogo-cli/parser.rb, line 294
def boolean?
  !long_name.include?('=')
end
option_name() click to toggle source

@return [Symbol] option compatible name

# File lib/bogo-cli/parser.rb, line 289
def option_name
  long_name.split('=').first.gsub('-', '_').to_sym
end