class JMESPath::Nodes::LengthFunction
def call(args)
def call(args) if args.count == 1 value = args.first else return maybe_raise Errors::InvalidArityError, 'function length() expects one argument' end if value.respond_to?(:to_hash) value.to_hash.size elsif value.respond_to?(:to_ary) value.to_ary.size elsif value.respond_to?(:to_str) value.to_str.size else return maybe_raise Errors::InvalidTypeError, 'function length() expects string, array or object' end end