Method: CommandLine::Option#validate_arity

Defined in:
lib/commandline/optionparser/option.rb

#validate_arity(arity) ⇒ Object



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/commandline/optionparser/option.rb', line 156

def validate_arity(arity)
raise ":arity is nil" if arity.nil?
  min, max = *arity

  raise(InvalidArgumentArityError, "Minimum argument arity '#{min}' must be "+
    "greater than or equal to 0.") unless min >= 0
  raise(InvalidArgumentArityError, "Maximum argument arity '#{max}' must be "+
    "greater than or equal to -1.") if max < -1
  raise(InvalidArgumentArityError, "Maximum argument arity '#{max}' must be "+
    "greater than minimum arity '#{min}'.") if max < min && max != -1
  if @posix
    raise(InvalidArgumentArityError, "Posix options only support :arity "+
      "of [0,0] or [1,1].") unless ([0,0] == arity) || ([1,1] == arity)
  end
end