class Cl::Arg

Public Instance Methods

array?() click to toggle source
# File lib/cl/arg.rb, line 24
def array?
  type == :array
end
default() click to toggle source
# File lib/cl/arg.rb, line 40
def default
  opts[:default]
end
default?() click to toggle source
# File lib/cl/arg.rb, line 44
def default?
  opts.key?(:default)
end
define(const) click to toggle source
# File lib/cl/arg.rb, line 7
def define(const)
  mod = Module.new
  mod.send(:attr_accessor, name)
  mod.class_eval "def #{name}?; #{name}.is_a?(Array) ? !#{name}.empty? : !!#{name} end"
  const.send(:include, mod)
end
description() click to toggle source
# File lib/cl/arg.rb, line 28
def description
  opts[:description]
end
enum() click to toggle source
# File lib/cl/arg.rb, line 32
def enum
  Array(opts[:enum])
end
enum?() click to toggle source
# File lib/cl/arg.rb, line 36
def enum?
  opts.key?(:enum)
end
known?(value) click to toggle source
# File lib/cl/arg.rb, line 48
def known?(value)
  enum.include?(value)
end
required?() click to toggle source
# File lib/cl/arg.rb, line 52
def required?
  !!opts[:required]
end
separator() click to toggle source
# File lib/cl/arg.rb, line 56
def separator
  opts[:sep]
end
set(cmd, value) click to toggle source
# File lib/cl/arg.rb, line 14
def set(cmd, value)
  value = cast(value)
  unknown(value) if enum? && !known?(value)
  cmd.send(:"#{name}=", value)
end
splat?() click to toggle source
# File lib/cl/arg.rb, line 60
def splat?
  !!opts[:splat] && array?
end
to_s() click to toggle source
# File lib/cl/arg.rb, line 68
def to_s
  str = name
  case type
  when :array          then str = "#{str}.."
  when :boolean, :bool then str = "#{str}:bool"
  when :integer, :int  then str = "#{str}:int"
  when :float          then str = "#{str}:float"
  end
  required? ? str : "[#{str}]"
end
type() click to toggle source
# File lib/cl/arg.rb, line 20
def type
  opts[:type] || :string
end
unknown(value) click to toggle source
# File lib/cl/arg.rb, line 64
def unknown(value)
  raise UnknownArgumentValue.new(value, enum.join(', '))
end