From 65fd1330fd6954711bcc243c643877776c895c04 Mon Sep 17 00:00:00 2001 From: strcmp Date: Sat, 22 Aug 2015 15:11:20 +0100 Subject: [PATCH] refactor Pry::Output and add `#tty?` method to it. --- lib/pry/output.rb | 78 +++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/lib/pry/output.rb b/lib/pry/output.rb index 3ab3deb0..db5402b3 100644 --- a/lib/pry/output.rb +++ b/lib/pry/output.rb @@ -1,50 +1,50 @@ -class Pry - class Output - attr_reader :_pry_ +class Pry::Output + attr_reader :_pry_ - def initialize(_pry_) - @_pry_ = _pry_ - end + def initialize(_pry_) + @_pry_ = _pry_ + @boxed_io = _pry_.config.output + end - def puts(*objs) - return print "\n" if objs.empty? - - objs.each do |obj| - if ary = Array.try_convert(obj) - puts(*ary) - else - print "#{obj.to_s.chomp}\n" - end - end - - nil - end - - def print(*objs) - objs.each do |obj| - _pry_.config.output.print decolorize_maybe(obj.to_s) - end - - nil - end - alias << print - alias write print - - # If _pry_.config.color is currently false, removes ansi escapes from the string. - def decolorize_maybe(str) - if _pry_.config.color - str + def puts(*objs) + return print "\n" if objs.empty? + objs.each do |obj| + if ary = Array.try_convert(obj) + puts(*ary) else - Helpers::Text.strip_color str + print "#{obj.to_s.chomp}\n" end end + nil + end - def method_missing(name, *args, &block) - _pry_.config.output.__send__(name, *args, &block) + def print(*objs) + objs.each do |obj| + @boxed_io.print decolorize_maybe(obj.to_s) end + nil + end + alias << print + alias write print - def respond_to_missing?(*a) - _pry_.config.respond_to?(*a) + def tty? + @boxed_io.respond_to?(:tty?) and @boxed_io.tty? + end + + def method_missing(name, *args, &block) + @boxed_io.__send__(name, *args, &block) + end + + def respond_to_missing?(*a) + _pry_.config.respond_to?(*a) + end + + private + def decolorize_maybe(str) + if _pry_.config.color + str + else + Pry::Helpers::Text.strip_color str end end end