class Byebug::PSCommand


Evaluation, pretty printing, columnizing and sorting from byebug’s prompt

def description

def description
  prettify <<-EOD
    ps <expression>
    Evaluates <expression>, an array, sort and columnize its value.
  EOD
end

def execute

def execute
  out = StringIO.new
  run_with_binding do |b|
    res = eval_with_setting(b, @match.post_match, Setting[:stack_on_error])
    if res.is_a?(Array)
      puts "#{columnize(res.map(&:to_s).sort!, Setting[:width])}"
    else
      PP.pp(res, out)
      puts out.string
    end
  end
rescue
  out.puts $ERROR_INFO.message
end

def names

def names
  %w(ps)
end

def regexp

def regexp
  /^\s* ps \s+/x
end