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