summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyrylo Silin <silin@kyrylo.org>2019-04-14 16:09:08 +0300
committerGitHub <noreply@github.com>2019-04-14 16:09:08 +0300
commit9306e69bda2f44985944cbc162db4723cb8a0ec4 (patch)
tree9912e43d81bb5e5c2f06947294638dc96d282d0f
parente28174853adc7fd2bcdb78b480b512158ecdc84f (diff)
parentcc20804e36d84226d4ddfc5c8f62ac01c71bfb79 (diff)
downloadpry-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.rb2
-rw-r--r--lib/pry/color_printer.rb7
-rw-r--r--lib/pry/config.rb9
-rw-r--r--lib/pry/config/behavior.rb2
-rw-r--r--spec/color_printer_spec.rb10
5 files changed, 20 insertions, 10 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/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