class JMESPath::Nodes::AvgFunction
def call(args)
def call(args) if args.count == 1 values = args.first else return maybe_raise Errors::InvalidArityError, 'function avg() expects one argument' end if values.respond_to?(:to_ary) values = values.to_ary return nil if values.empty? values.inject(0) do |total, n| if Numeric === n total + n else return maybe_raise Errors::InvalidTypeError, 'function avg() expects numeric values' end end / values.size.to_f else return maybe_raise Errors::InvalidTypeError, 'function avg() expects a number' end end