module Behold::ArityRange

Public Instance Methods

arity_range() click to toggle source
# File lib/behold/arity_range.rb, line 6
def arity_range
  args = parameters.map(&:first)
  req = args.count :req
  keyreq = args.count :keyreq
  opt = args.include?(:rest) ? Float::INFINITY : args.count(:opt)
  keyopt = args.include?(:keyrest) ? Float::INFINITY : args.count(:key)

  {arguments: req..req + opt, keywords: keyreq..keyreq + keyopt}
end