class GGem::CLI::CLIRB::Option

Attributes

abbrev[R]
desc[R]
klass[R]
name[R]
opt_name[R]
parser_args[R]
value[R]

Public Class Methods

new(name, desc = nil, abbrev: nil, value: nil) click to toggle source
# File lib/ggem/cli/clirb.rb, line 37
def initialize(name, desc = nil, abbrev: nil, value: nil)
  @name, @desc = name, desc || ""
  @opt_name, @abbrev = parse_name_values(name, abbrev)
  @value, @klass = gvalinfo(value)
  @parser_args = if [TrueClass, FalseClass, NilClass].include?(@klass)
    ["-#{@abbrev}", "--[no-]#{@opt_name}", @desc]
  else
    ["-#{@abbrev}", "--#{@opt_name} VALUE", @klass, @desc]
  end
end

Private Instance Methods

gvalinfo(v) click to toggle source
# File lib/ggem/cli/clirb.rb, line 55
def gvalinfo(v); v.kind_of?(Class) ? [nil,v] : [v,v.class]; end
parse_name_values(name, custom_abbrev) click to toggle source
# File lib/ggem/cli/clirb.rb, line 50
def parse_name_values(name, custom_abbrev)
  [ (processed_name = name.to_s.strip.downcase).gsub("_", "-"),
    custom_abbrev || processed_name.gsub(/[^a-z]/, "").chars.first || "a"
  ]
end