class Traceable::Args
Constants
- MAX_ARRAY_VALUES
- MAX_HASH_KEYS
- MAX_STRING_LENGTH
Public Class Methods
format_array_of_values(val_array)
click to toggle source
# File lib/traceable/args.rb, line 47 def self.format_array_of_values(val_array) return format_array_of_values(truncated_array(val_array)) \ if val_array.size > @max_array_values val_array.map { |v| format_value(v) } end
format_hash_of_values(val_hash)
click to toggle source
# File lib/traceable/args.rb, line 59 def self.format_hash_of_values(val_hash) return format_hash_of_values(truncated_hash(val_hash)) \ if val_hash.size > @max_hash_keys Hash[val_hash.map { |k, v| [k, format_value(v)] }] end
format_string(val)
click to toggle source
# File lib/traceable/args.rb, line 42 def self.format_string(val) return val[0..@trunc_string_length] + '...' if val.size > @max_string_length val end
format_value(val)
click to toggle source
# File lib/traceable/args.rb, line 18 def self.format_value(val) return val.to_trace if val.respond_to? :to_trace return format_array_of_values(val) if val.is_a? Array return format_hash_of_values(val) if val.is_a? Hash return format_string(val) if val.is_a? String val end
set_config_limits(max_string_length:, max_array_values:, max_hash_keys:)
click to toggle source
# File lib/traceable/args.rb, line 35 def self.set_config_limits(max_string_length:, max_array_values:, max_hash_keys:) @max_string_length = max_string_length.nil? ? MAX_STRING_LENGTH : max_string_length @trunc_string_length = [@max_string_length, 4].max - 3 @max_array_values = max_array_values.nil? ? MAX_ARRAY_VALUES : max_array_values @max_hash_keys = max_hash_keys.nil? ? MAX_HASH_KEYS : max_array_values end
truncated_array(val_array)
click to toggle source
# File lib/traceable/args.rb, line 53 def self.truncated_array(val_array) subset = val_array[0..@max_array_values - 2] subset << "...(#{val_array.size - subset.size})" subset end
truncated_hash(val_hash)
click to toggle source
# File lib/traceable/args.rb, line 65 def self.truncated_hash(val_hash) first_keys = val_hash.keys[0..@max_hash_keys - 2] first_vals = first_keys.map { |k| val_hash[k] } first_keys << :___ first_vals << "...(#{val_hash.size - first_vals.size})" Hash[first_keys.zip(first_vals)] end