module PryState::Printer

Constants

COLUMN_RATIO

Ratios are 1:3 left:right, or 1/4 left

LEFT_COLUMN_WIDTH
MAX_LEFT_COLUMN_WIDTH
TRUNCATE

Defaults to true

WIDTH

Public Instance Methods

trunc_and_print(var, value, var_color, value_color) click to toggle source
# File lib/pry-state/printer.rb, line 14
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

Private Instance Methods

stringified_val_or_nil(value, color, length) click to toggle source
# File lib/pry-state/printer.rb, line 31
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
stringify_value(value) click to toggle source
# File lib/pry-state/printer.rb, line 41
def stringify_value value
  if value.class == String
    "\"#{value}\""
  elsif value.class == Array
    "len:#{value.count} #{value.inspect}"
  else
    value.inspect
  end
end
truncate(text, length) click to toggle source
# File lib/pry-state/printer.rb, line 24
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