# File lib/jmespath/nodes/function.rb, line 270 def call(args) if args.count == 1 value = args.first if hash_like?(value) case value when Hash then value.keys.map(&:to_s) when Struct then value.members.map(&:to_s) else raise NotImplementedError end else raise Errors::InvalidTypeError, "function keys() expects a hash" end else raise Errors::InvalidArityError, "function keys() expects one argument" end end