summaryrefslogtreecommitdiff
path: root/lib/irb/inspector.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/irb/inspector.rb')
-rw-r--r--lib/irb/inspector.rb26
1 files changed, 12 insertions, 14 deletions
diff --git a/lib/irb/inspector.rb b/lib/irb/inspector.rb
index 671b32b6e8..c2f3b605db 100644
--- a/lib/irb/inspector.rb
+++ b/lib/irb/inspector.rb
@@ -100,29 +100,27 @@ module IRB # :nodoc:
# Proc to call when the input is evaluated and output in irb.
def inspect_value(v)
@inspect.call(v)
+ rescue
+ puts "(Object doesn't support #inspect)"
+ ''
end
end
Inspector.def_inspector([false, :to_s, :raw]){|v| v.to_s}
- Inspector.def_inspector([true, :p, :inspect]){|v|
- begin
- result = v.inspect
- if IRB.conf[:MAIN_CONTEXT]&.use_colorize? && Color.inspect_colorable?(v)
- result = Color.colorize_code(result)
- end
- result
- rescue NoMethodError
- puts "(Object doesn't support #inspect)"
- ''
- end
- }
- Inspector.def_inspector([:pp, :pretty_inspect], proc{require "pp"}){|v|
- result = v.pretty_inspect.chomp
+ Inspector.def_inspector([:p, :inspect]){|v|
+ result = v.inspect
if IRB.conf[:MAIN_CONTEXT]&.use_colorize? && Color.inspect_colorable?(v)
result = Color.colorize_code(result)
end
result
}
+ Inspector.def_inspector([true, :pp, :pretty_inspect], proc{require "irb/color_printer"}){|v|
+ if IRB.conf[:MAIN_CONTEXT]&.use_colorize?
+ IRB::ColorPrinter.pp(v, '').chomp
+ else
+ v.pretty_inspect.chomp
+ end
+ }
Inspector.def_inspector([:yaml, :YAML], proc{require "yaml"}){|v|
begin
YAML.dump(v)