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
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/debug_logging/argument_printer.rb', line 37
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)
add_last_hash_ellipsis = false
if args.length > 1
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(', ')[0..(config_proxy.debug_args_max_length)]
last_hash_args_string = last_hash_args.map do |arg|
arr = []
arr << config_proxy.debug_last_hash_to_s_proc.call(arg).to_s
.tap do |x|
add_last_hash_ellipsis = x.length > config_proxy.debug_last_hash_max_length
end
if add_last_hash_ellipsis
arr[-1] = arr[-1][0..(config_proxy.debug_last_hash_max_length)]
arr << config_proxy.debug_ellipsis
end
arr
end.flatten.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 && !last_hash_args_string.empty?
else
printed_args += args[0..-2].map(&: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(&: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(&: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
|