class Ame::Arguments::Optional
The arguments to a method in its {Method::Undefined undefined state} where at least one optional argument has been defined and only further {Optional#optional optional
} or {Undefined#splat splat
} arguments are allowed. @api internal
Public Class Methods
new(arguments, optional)
click to toggle source
# File lib/ame-1.0/arguments/optional.rb, line 8 def initialize(arguments, optional) @arguments, @optional = arguments + [optional], optional end
Public Instance Methods
argument(name, type, description, &validate)
click to toggle source
@raise [ArgumentError] If an optional argument has been defined
# File lib/ame-1.0/arguments/optional.rb, line 13 def argument(name, type, description, &validate) raise ArgumentError, "argument '%s', … may not follow optional '%s', …" % [name, @optional.name] end
optional(name, default, description, &validate)
click to toggle source
Adds a new {Optional} argument to the receiver. @param (see Undefined#optional) @yield (see Undefined#optional) @yieldparam (see Undefined#optional) @raise (see Undefined#optional) @return [self]
# File lib/ame-1.0/arguments/optional.rb, line 30 def optional(name, default, description, &validate) self << Ame::Optional.new(name, default, description, &validate) end
splus(name, default, description, &validate)
click to toggle source
@raise [ArgumentError] If an optional argument has been defined
# File lib/ame-1.0/arguments/optional.rb, line 19 def splus(name, default, description, &validate) raise ArgumentError, "splus '%s', … may not follow optional '%s', …" % [name, @optional.name] end