class Pry::ColorPrinter
Constants
- OBJ_COLOR
Public Class Methods
pp(obj, out = $>, width = 79)
click to toggle source
# File lib/pry/color_printer.rb, line 15 def self.pp(obj, out = $>, width = 79) q = ColorPrinter.new(out, width) q.guard_inspect_key { q.pp obj } q.flush out << "\n" end
Public Instance Methods
pp(obj)
click to toggle source
Calls superclass method
# File lib/pry/color_printer.rb, line 33 def pp(obj) if String === obj # Avoid calling Ruby 2.4+ String#pretty_print that prints multiline # Strings prettier Object.instance_method(:pretty_print).bind(obj).call else super end rescue => e raise if e.is_a? Pry::Pager::StopPaging begin str = obj.inspect rescue Exception # Read the class name off of the singleton class to provide a default # inspect. singleton = class << obj; self; end ancestors = Pry::Method.safe_send(singleton, :ancestors) klass = ancestors.reject { |k| k == singleton }.first obj_id = obj.__id__.to_s(16) rescue 0 str = "#<#{klass}:0x#{obj_id}>" end text highlight_object_literal(str) end
text(str, width = str.length)
click to toggle source
Calls superclass method
# File lib/pry/color_printer.rb, line 22 def text(str, width = str.length) # Don't recolorize output with color [Issue #751] if str.include?("\e[") super "#{str}\e[0m", width elsif str.start_with?('#<') || str == '=' || str == '>' super highlight_object_literal(str), width else super CodeRay.scan(str, :ruby).term, width end end
Private Instance Methods
highlight_object_literal(object_literal)
click to toggle source
# File lib/pry/color_printer.rb, line 60 def highlight_object_literal(object_literal) "#{OBJ_COLOR}#{object_literal}\e[0m" end