diff options
author | Kyrylo Silin <silin@kyrylo.org> | 2019-04-14 13:56:57 +0300 |
---|---|---|
committer | Kyrylo Silin <silin@kyrylo.org> | 2019-04-14 13:56:57 +0300 |
commit | 55052fd341d05eb0be8d1ad0a5ce85a979845e9e (patch) | |
tree | 9f7bd76ead7955be07b5b1517073b957d1b86ca8 | |
parent | e28174853adc7fd2bcdb78b480b512158ecdc84f (diff) | |
download | pry-color-printer-refactoring.tar.gz |
config: factor out color printer proc to ColorPrintercolor-printer-refactoring
-rw-r--r-- | lib/pry.rb | 2 | ||||
-rw-r--r-- | lib/pry/color_printer.rb | 7 | ||||
-rw-r--r-- | lib/pry/config.rb | 9 | ||||
-rw-r--r-- | spec/color_printer_spec.rb | 10 |
4 files changed, 19 insertions, 9 deletions
@@ -20,6 +20,7 @@ require 'pry/command_set' require 'pry/syntax_highlighter' require 'pry/editor' require 'pry/history' +require 'pry/color_printer' Pry::Commands = Pry::CommandSet.new unless defined?(Pry::Commands) @@ -48,7 +49,6 @@ require 'pry/config' require 'pry/pry_class' require 'pry/pry_instance' require 'pry/inspector' -require 'pry/color_printer' require 'pry/pager' require 'pry/terminal' require 'pry/indent' diff --git a/lib/pry/color_printer.rb b/lib/pry/color_printer.rb index b339351a..0487c956 100644 --- a/lib/pry/color_printer.rb +++ b/lib/pry/color_printer.rb @@ -6,6 +6,13 @@ class Pry class ColorPrinter < ::PP Pry::SyntaxHighlighter.overwrite_coderay_comment_token! + def self.default(_output, value, pry_instance) + pry_instance.pager.open do |pager| + pager.print pry_instance.config.output_prefix + pp(value, pager, Pry::Terminal.width! - 1) + end + end + def self.pp(obj, output = $DEFAULT_OUTPUT, max_width = 79) queue = ColorPrinter.new(output, max_width, "\n") queue.guard_inspect_key { queue.pp(obj) } diff --git a/lib/pry/config.rb b/lib/pry/config.rb index 77e8373a..6b7e4fcf 100644 --- a/lib/pry/config.rb +++ b/lib/pry/config.rb @@ -16,14 +16,7 @@ class Pry prompt_name: Pry::Prompt::DEFAULT_NAME, prompt: Pry::Prompt[:default], prompt_safe_contexts: Pry::Prompt::SAFE_CONTEXTS, - - print: proc do |_output, value, pry_instance| - pry_instance.pager.open do |pager| - pager.print pry_instance.config.output_prefix - Pry::ColorPrinter.pp(value, pager, Pry::Terminal.width! - 1) - end - end, - + print: Pry::ColorPrinter.method(:default), quiet: false, # Will only show the first line of the backtrace diff --git a/spec/color_printer_spec.rb b/spec/color_printer_spec.rb index 13b2acf6..8347a348 100644 --- a/spec/color_printer_spec.rb +++ b/spec/color_printer_spec.rb @@ -1,6 +1,16 @@ RSpec.describe Pry::ColorPrinter do let(:output) { StringIO.new } + describe ".default" do + let(:output) { StringIO.new } + let(:pry_instance) { Pry.new(output: output) } + + it "prints output prefix with value" do + described_class.default(StringIO.new, 'foo', pry_instance) + expect(output.string).to eq("=> \"foo\"\n") + end + end + describe ".pp" do context "when no exception is raised in #inspect" do let(:healthy_class) do |