diff options
author | Kyrylo Silin <silin@kyrylo.org> | 2019-04-14 16:09:08 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-14 16:09:08 +0300 |
commit | 9306e69bda2f44985944cbc162db4723cb8a0ec4 (patch) | |
tree | 9912e43d81bb5e5c2f06947294638dc96d282d0f | |
parent | e28174853adc7fd2bcdb78b480b512158ecdc84f (diff) | |
parent | cc20804e36d84226d4ddfc5c8f62ac01c71bfb79 (diff) | |
download | pry-9306e69bda2f44985944cbc162db4723cb8a0ec4.tar.gz |
Merge pull request #2011 from pry/color-printer-refactoring
config: factor out color printer proc to ColorPrinter
-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-- | lib/pry/config/behavior.rb | 2 | ||||
-rw-r--r-- | spec/color_printer_spec.rb | 10 |
5 files changed, 20 insertions, 10 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/lib/pry/config/behavior.rb b/lib/pry/config/behavior.rb index 937a5d35..1fb51f99 100644 --- a/lib/pry/config/behavior.rb +++ b/lib/pry/config/behavior.rb @@ -40,7 +40,7 @@ class Pry ASSIGNMENT = "=".freeze NODUP = [ - TrueClass, FalseClass, NilClass, Symbol, Numeric, Module, Proc, + TrueClass, FalseClass, NilClass, Symbol, Numeric, Module, Proc, Method, Pry::Prompt, Pry::Config::Lazy ].freeze 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 |