summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyrylo Silin <silin@kyrylo.org>2019-04-14 13:56:57 +0300
committerKyrylo Silin <silin@kyrylo.org>2019-04-14 13:56:57 +0300
commit55052fd341d05eb0be8d1ad0a5ce85a979845e9e (patch)
tree9f7bd76ead7955be07b5b1517073b957d1b86ca8
parente28174853adc7fd2bcdb78b480b512158ecdc84f (diff)
downloadpry-color-printer-refactoring.tar.gz
config: factor out color printer proc to ColorPrintercolor-printer-refactoring
-rw-r--r--lib/pry.rb2
-rw-r--r--lib/pry/color_printer.rb7
-rw-r--r--lib/pry/config.rb9
-rw-r--r--spec/color_printer_spec.rb10
4 files changed, 19 insertions, 9 deletions
diff --git a/lib/pry.rb b/lib/pry.rb
index 5bbbb9b5..4596ed2c 100644
--- a/lib/pry.rb
+++ b/lib/pry.rb
@@ -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