class MCLI::Command::Option

@private

Attributes

alias[R]
boolean[R]
default[R]
name[R]
required[R]
type[R]

Public Class Methods

new(name, options={}) click to toggle source
# File lib/mcli/command/option.rb, line 5
def initialize(name, options={})
  opts = default_options.merge(options)

  @name     = name.to_sym
  @alias    = opts[:alias].to_s if opts[:alias]
  @default  = opts[:default]
  @required = opts[:required]
  @type     = opts[:type]
  @boolean  = opts[:boolean]
end

Public Instance Methods

to_args() click to toggle source
# File lib/mcli/command/option.rb, line 16
def to_args
  [].tap do |args|
    args << "-#{@alias}"                   if @alias
    args << "--#{@name} #{@name.upcase}"   if @required && !@boolean
    args << "--#{@name} [#{@default || @name.upcase}]" if !@required && !@boolean
    args << "--[no-]#{@name}"              if @boolean
  end
end

Private Instance Methods

default_options() click to toggle source
# File lib/mcli/command/option.rb, line 27
def default_options
  {
    required: false,
    boolean: false
  }
end