module PryState::Printer
def stringified_val_or_nil value, color, length
def stringified_val_or_nil value, color, length value = stringify_value value if value.empty? Pry::Helpers::Text.red 'nil' else text = truncate(value, length) Pry::Helpers::Text.send(color, text) end end
def stringify_value value
def stringify_value value if value.class == String "\"#{value}\"" elsif value.class == Array "len:#{value.count} #{value.inspect}" else value.inspect end end
def trunc_and_print var, value, var_color, value_color
def trunc_and_print var, value, var_color, value_color var_name_adjusted = var.to_s.ljust(LEFT_COLUMN_WIDTH) # Ensure at least 1 space between left and right columns left_column_text = truncate(var_name_adjusted, LEFT_COLUMN_WIDTH - 1) + ' ' print Pry::Helpers::Text.send(var_color, left_column_text) print stringified_val_or_nil(value, value_color, WIDTH - LEFT_COLUMN_WIDTH) print "\n" end
def truncate text, length
def truncate text, length if text.nil? then return end return text unless ENV['TRUNCATE'] l = length - "...".length (text.chars.to_a.size > length ? text.chars.to_a[0...l].join + "..." : text).to_s end