class JMESPath::Nodes::AvgFunction
Public Instance Methods
call(args)
click to toggle source
# File lib/jmespath/nodes/function.rb, line 106 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