argument(arg)
click to toggle source
def argument arg
param.argument arg
end
argument_optional(bool = true)
click to toggle source
def argument_optional bool = true
if bool
param.argument :optional
else
param.argument false
end
end
argument_optional?()
click to toggle source
def argument_optional?
param.argument_optional?
end
argument_required(bool = true)
click to toggle source
def argument_required bool = true
if bool
param.argument :required
else
param.argument false
end
end
argument_required?()
click to toggle source
def argument_required?
param.argument_required?
end
arity(value)
click to toggle source
def arity value
raise Arity if value.nil?
value = -1 if value.to_s == '*'
value = Integer value
raise Arity if value.zero?
param.arity = value
if param.arity == -1
optional true
end
value
end
arity?()
click to toggle source
def arity?
param.arity?
end
attr(*a, &b)
click to toggle source
def attr(*a, &b)
fattr(*a, &b)
end
cast(sym=nil, &b)
click to toggle source
def cast sym=nil, &b
param.cast = sym || b
end
cast?()
click to toggle source
def cast?
param.cast?
end
default(*values, &block)
click to toggle source
def default *values, &block
if block.nil? and values.empty?
raise ArgumentError, 'no default'
end
unless values.empty?
param.defaults.push(*values)
end
unless block.nil?
param.defaults.push block
end
param.defaults
end
defaults?()
click to toggle source
def defaults?
param.defaults?
end
description(s)
click to toggle source
def description s
param.description = s.to_s
end
description?()
click to toggle source
def description?
param.description?
end
error(which = :instead, &block)
click to toggle source
def error which = :instead, &block
param.send "error_handler_#{ which }=", block
end
example(*list)
click to toggle source
def example *list
list.flatten.compact.each do |elem|
param.examples << elem.to_s
end
end
fattr(a = nil, &block)
click to toggle source
def fattr a = nil, &block
name = param.name
a ||= name
b = fattr_block_for(name, &block)
@param.main.module_eval{ fattr(*a, &b) }
end
fattr_block_for(name, &block)
click to toggle source
def fattr_block_for name, &block
block ||= lambda{|param| [0,1].include?(param.arity) ? param.value : param.values }
lambda{|*args| block.call(self.param[name]) }
end
optional(bool = true)
click to toggle source
def optional bool = true
if bool
param.required !bool
else
param.required bool
end
end
optional?()
click to toggle source
def optional?
param.optional?
end
required(bool = true)
click to toggle source
def required bool = true
param.required = bool
end
required?()
click to toggle source
def required?
param.required?
end
synopsis(*arg)
click to toggle source
def synopsis *arg
arg.size == 0 ? param.synopsis : (param.synopsis arg.first)
end
type(*sym)
click to toggle source
def type *sym
sym.size == 0 ? param.type : (param.type = sym.first)
end
type?()
click to toggle source
def type?
param.type?
end
validate(sym=nil, &b)
click to toggle source
def validate sym=nil, &b
param.validate = sym || b
end
validate?()
click to toggle source
def validate?
param.validate?
end