32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/debug_logging/argument_printer.rb', line 32
def debug_signature_to_s(args: nil, config_proxy: nil)
printed_args = ""
add_args_ellipsis = false
if config_proxy.debug_last_hash_to_s_proc && args[-1].is_a?(Hash)
if args.length > 1
add_last_hash_ellipsis = false
if config_proxy.debug_multiple_last_hashes
last_hash_args, other_args = args.partition do |arg|
arg.is_a?(Hash)
end
other_args_string = other_args.map(&:inspect).join(", ").tap {|x| add_args_ellipsis = x.length > config_proxy.debug_args_max_length}[0..(config_proxy.debug_args_max_length)]
last_hash_args_string = last_hash_args.map do |arg|
String(config_proxy.
debug_last_hash_to_s_proc.
call(arg)).
tap {|x|
add_last_hash_ellipsis = x.length > config_proxy.debug_last_hash_max_length
}[0..(config_proxy.debug_last_hash_max_length)].
tap {|x|
x << config_proxy.debug_ellipsis if add_last_hash_ellipsis
}
end.join(", ")
printed_args << other_args_string if other_args_string
printed_args << ", " if !other_args_string.empty? && !last_hash_args_string.empty?
printed_args << last_hash_args_string if last_hash_args_string
else
printed_args << args[0..(-2)].map {|x| x.inspect}.join(", ").tap {|x| add_args_ellipsis = x.length > config_proxy.debug_args_max_length}[0..(config_proxy.debug_args_max_length)]
printed_args << config_proxy.debug_ellipsis if add_args_ellipsis
printed_args << ", " << config_proxy.debug_last_hash_to_s_proc.call(args[-1]).tap {|x| add_last_hash_ellipsis = x.length > config_proxy.debug_last_hash_max_length}[0..(config_proxy.debug_last_hash_max_length)]
printed_args << config_proxy.debug_ellipsis if add_last_hash_ellipsis
end
else
printed_args << String(config_proxy.debug_last_hash_to_s_proc.call(args[0])).tap {|x| add_last_hash_ellipsis = x.length > config_proxy.debug_last_hash_max_length}[0..(config_proxy.debug_last_hash_max_length)]
printed_args << config_proxy.debug_ellipsis if add_last_hash_ellipsis
end
else
if args.length == 1 && args[0].is_a?(Hash)
printed_args << ("**" << args.map {|x| x.inspect}.join(", ").tap {|x| add_args_ellipsis = x.length > config_proxy.debug_args_max_length})[0..(config_proxy.debug_args_max_length)]
else
printed_args << args.map {|x| x.inspect}.join(", ").tap {|x| add_args_ellipsis = x.length > config_proxy.debug_args_max_length}[0..(config_proxy.debug_args_max_length)]
end
printed_args << config_proxy.debug_ellipsis if add_args_ellipsis
end
"(#{printed_args})"
end
|