From c0b61b407bd5db390ba0ad8c879e9af6717f46cf Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Fri, 31 Jan 2014 23:38:13 +0100 Subject: [PATCH 01/19] lazy load readline through Proc defined on Pry::Config::Default. closes #1107 closes #1081 closes #1095 --- lib/pry.rb | 7 ------- lib/pry/config/default.rb | 12 +++++++++++- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/pry.rb b/lib/pry.rb index 856b8aa8..2bde869a 100644 --- a/lib/pry.rb +++ b/lib/pry.rb @@ -132,13 +132,6 @@ require 'rbconfig' require 'tempfile' require 'pathname' -begin - require 'readline' -rescue LoadError - warn "You're running a version of ruby with no Readline support" - warn "Please `gem install rb-readline` or recompile ruby --with-readline." - exit! -end if Pry::Helpers::BaseHelpers.jruby? begin diff --git a/lib/pry/config/default.rb b/lib/pry/config/default.rb index 990048a1..7ab077d4 100644 --- a/lib/pry/config/default.rb +++ b/lib/pry/config/default.rb @@ -1,8 +1,18 @@ class Pry::Config::Default include Pry::Config::Behavior + def self.lazy_readline + require 'readline' + Readline + rescue LoadError + warn "Pry says!" + warn "You're running a version of ruby with no Readline support" + warn "Please `gem install rb-readline` or recompile ruby --with-readline." + exit! + end + default = { - :input => proc { Readline }, + :input => method(:lazy_readline).to_proc, :output => proc { $stdout }, :commands => proc { Pry::Commands }, :prompt_name => proc { Pry::DEFAULT_PROMPT_NAME }, From 78d44436904e735f0d6de92f953542c82382b97f Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Fri, 31 Jan 2014 23:49:58 +0100 Subject: [PATCH 02/19] improve error message on failure to require 'readline'. references #1095 --- lib/pry/config/default.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/pry/config/default.rb b/lib/pry/config/default.rb index 7ab077d4..2c1d930d 100644 --- a/lib/pry/config/default.rb +++ b/lib/pry/config/default.rb @@ -6,8 +6,9 @@ class Pry::Config::Default Readline rescue LoadError warn "Pry says!" - warn "You're running a version of ruby with no Readline support" - warn "Please `gem install rb-readline` or recompile ruby --with-readline." + warn "require of 'readline' has failed." + warn "you can rebuild ruby with readline support from C through '--with-readline'." + warn "alternatively, you can use the pure-ruby version of readline through 'gem install rb-readline'" exit! end From 57aecd6a23b80740d36f59a3b481755cc54d83fc Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Sat, 1 Feb 2014 00:59:00 +0100 Subject: [PATCH 03/19] re-raise LoadError (part of #1081) --- lib/pry/config/default.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pry/config/default.rb b/lib/pry/config/default.rb index 2c1d930d..7950a2d6 100644 --- a/lib/pry/config/default.rb +++ b/lib/pry/config/default.rb @@ -4,12 +4,12 @@ class Pry::Config::Default def self.lazy_readline require 'readline' Readline - rescue LoadError + rescue LoadError => e warn "Pry says!" warn "require of 'readline' has failed." warn "you can rebuild ruby with readline support from C through '--with-readline'." warn "alternatively, you can use the pure-ruby version of readline through 'gem install rb-readline'" - exit! + raise(e) end default = { From 005ea4898decd60fdde7b14529a25344b3cc9de4 Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Sat, 1 Feb 2014 01:14:32 +0100 Subject: [PATCH 04/19] remove reference to 'Readline' from if condition in tests. --- spec/completion_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/completion_spec.rb b/spec/completion_spec.rb index 2867bcea..876a3828 100644 --- a/spec/completion_spec.rb +++ b/spec/completion_spec.rb @@ -6,7 +6,7 @@ def completer_test(bind, pry=nil, assert_flag=true) return proc {|*symbols| symbols.each(&test) } end -if defined?(Bond) && Readline::VERSION !~ /editline/i +if defined?(Bond) describe 'bond-based completion' do it 'should pull in Bond by default' do Pry.config.completer.should == Pry::BondCompleter From df866e40a914d08f571b2f6aa10e1015ce940874 Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Sat, 1 Feb 2014 01:21:38 +0100 Subject: [PATCH 05/19] update Pry::REPL to not assume Readline is loaded. --- lib/pry/repl.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pry/repl.rb b/lib/pry/repl.rb index fa1caf04..0fa8d753 100644 --- a/lib/pry/repl.rb +++ b/lib/pry/repl.rb @@ -179,9 +179,9 @@ class Pry end end - if input == Readline + if defined?(Readline) and input == Readline if !$stdout.tty? && $stdin.tty? && !Pry::Helpers::BaseHelpers.windows? - Readline.output = File.open('/dev/tty', 'w') + _pry_.input.output = File.open('/dev/tty', 'w') end input_readline(current_prompt, false) # false since we'll add it manually elsif defined? Coolline and input.is_a? Coolline From 1816493ed58506ed511f2c04b8963299cb487818 Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Sat, 1 Feb 2014 01:24:40 +0100 Subject: [PATCH 06/19] visit instance of 'Pry' through delegate. --- lib/pry/repl.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pry/repl.rb b/lib/pry/repl.rb index 0fa8d753..ac057497 100644 --- a/lib/pry/repl.rb +++ b/lib/pry/repl.rb @@ -181,7 +181,7 @@ class Pry if defined?(Readline) and input == Readline if !$stdout.tty? && $stdin.tty? && !Pry::Helpers::BaseHelpers.windows? - _pry_.input.output = File.open('/dev/tty', 'w') + input.output = File.open('/dev/tty', 'w') end input_readline(current_prompt, false) # false since we'll add it manually elsif defined? Coolline and input.is_a? Coolline From f72ce4ec7ee2c35198090c82160399182737f643 Mon Sep 17 00:00:00 2001 From: Ryan Fitzgerald Date: Sun, 2 Feb 2014 15:34:44 -0800 Subject: [PATCH 07/19] Fix completion spec for Ruby with editline --- spec/completion_spec.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/spec/completion_spec.rb b/spec/completion_spec.rb index 876a3828..1d710bfb 100644 --- a/spec/completion_spec.rb +++ b/spec/completion_spec.rb @@ -6,16 +6,17 @@ def completer_test(bind, pry=nil, assert_flag=true) return proc {|*symbols| symbols.each(&test) } end -if defined?(Bond) - describe 'bond-based completion' do - it 'should pull in Bond by default' do +describe 'Bond-based completion' do + it "should use Bond if it's available" do + if defined?(Bond) && Readline::VERSION !~ /editline/i Pry.config.completer.should == Pry::BondCompleter + else + Pry.config.completer.should == Pry::InputCompleter end end end describe Pry::InputCompleter do - before do # The AMQP gem has some classes like this: # pry(main)> AMQP::Protocol::Test::ContentOk.name From 8ed7a869c7adf233d00f0b59b579272df01c9fcf Mon Sep 17 00:00:00 2001 From: Ryan Fitzgerald Date: Sun, 2 Feb 2014 17:01:32 -0800 Subject: [PATCH 08/19] Remove order dependency between :input and :completer procs This required switching Config::Default to use instance_eval instead of call so that config procs can reference each other. I also brought over a couple of copy changes from 0-9-12-stable. --- lib/pry.rb | 6 +++-- lib/pry/config/default.rb | 47 ++++++++++++++++++++++----------------- spec/helper.rb | 3 +++ 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/lib/pry.rb b/lib/pry.rb index 2bde869a..10b1a675 100644 --- a/lib/pry.rb +++ b/lib/pry.rb @@ -137,7 +137,8 @@ if Pry::Helpers::BaseHelpers.jruby? begin require 'ffi' rescue LoadError - warn "Need to `gem install ffi`" + # TODO: Why do we need this? + warn "For a better Pry experience on JRuby, please `gem install ffi`." end end @@ -148,7 +149,8 @@ if Pry::Helpers::BaseHelpers.windows? && !Pry::Helpers::BaseHelpers.windows_ansi # only fail on jruby (where win32console doesn't work). # Instead we'll recommend ansicon, which does. rescue LoadError - warn "For a better pry experience, please use ansicon: https://github.com/adoxa/ansicon" + warn "For a better Pry experience on Windows, please use ansicon:" + warn " http://adoxa.3eeweb.com/ansicon/" end end diff --git a/lib/pry/config/default.rb b/lib/pry/config/default.rb index 7950a2d6..49d588ab 100644 --- a/lib/pry/config/default.rb +++ b/lib/pry/config/default.rb @@ -1,19 +1,8 @@ class Pry::Config::Default include Pry::Config::Behavior - def self.lazy_readline - require 'readline' - Readline - rescue LoadError => e - warn "Pry says!" - warn "require of 'readline' has failed." - warn "you can rebuild ruby with readline support from C through '--with-readline'." - warn "alternatively, you can use the pure-ruby version of readline through 'gem install rb-readline'" - raise(e) - end - default = { - :input => method(:lazy_readline).to_proc, + :input => proc { lazy_readline }, :output => proc { $stdout }, :commands => proc { Pry::Commands }, :prompt_name => proc { Pry::DEFAULT_PROMPT_NAME }, @@ -46,13 +35,7 @@ class Pry::Config::Default :extra_sticky_locals => proc { {} }, :command_completer => proc { proc { Pry.commands.commands.keys } }, :file_completer => proc { proc { Dir["."] } }, - :completer => proc { - if defined?(Bond) && Readline::VERSION !~ /editline/i - Pry::BondCompleter.start - else - Pry::InputCompleter.start - end - } + :completer => proc { lazy_completer } } def initialize @@ -65,13 +48,14 @@ class Pry::Config::Default default.each do |key, value| define_method(key) do if default[key].equal?(value) - default[key] = value.call + default[key] = instance_eval(&value) end default[key] end end private + # TODO: # all of this configure_* stuff is a relic of old code. # we should try move this code to being command-local. @@ -112,4 +96,27 @@ private history.should_load = false end end + + def lazy_readline + require 'readline' + Readline + rescue LoadError + warn "Sorry, you can't use Pry without Readline or a compatible library." + warn "Possible solutions:" + warn " * Rebuild Ruby with Readline support using `--with-readline`" + warn " * Use the rb-readline gem, which is a pure-Ruby port of Readline" + raise + end + + def lazy_completer + if defined?(Bond) && !is_editline?(input) + Pry::BondCompleter.start + else + Pry::InputCompleter.start + end + end + + def is_editline?(input) + defined?(input::VERSION) && input::VERSION =~ /editline/i + end end diff --git a/spec/helper.rb b/spec/helper.rb index 60193949..0290d0d6 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -15,6 +15,9 @@ require 'spec_helpers/bacon' require 'spec_helpers/mock_pry' require 'spec_helpers/repl_tester' +# FIXME: temporary until history is fixed to not need Readline +require 'readline' + class Module public :remove_const public :remove_method From bfe70aa1651b6e07ee2c6c49ba4b87b98a412709 Mon Sep 17 00:00:00 2001 From: Ryan Fitzgerald Date: Sun, 2 Feb 2014 17:08:44 -0800 Subject: [PATCH 09/19] Check if Readline is defined before getting screen size --- lib/pry/terminal.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pry/terminal.rb b/lib/pry/terminal.rb index d88716b0..67f2979f 100644 --- a/lib/pry/terminal.rb +++ b/lib/pry/terminal.rb @@ -54,7 +54,7 @@ class Pry::Terminal end def screen_size_according_to_readline - if Readline.respond_to?(:get_screen_size) + if defined?(Readline) && Readline.respond_to?(:get_screen_size) size = Readline.get_screen_size size if nonzero_column?(size) end From 95d0ca534b5dd948005a29f7e3aab46ef63a87cd Mon Sep 17 00:00:00 2001 From: Ryan Fitzgerald Date: Sun, 2 Feb 2014 17:36:06 -0800 Subject: [PATCH 10/19] Don't assume Readline is loaded in auto_resize --- lib/pry/pry_class.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/pry/pry_class.rb b/lib/pry/pry_class.rb index 7065effa..cf284b89 100644 --- a/lib/pry/pry_class.rb +++ b/lib/pry/pry_class.rb @@ -233,15 +233,22 @@ class Pry end def self.auto_resize! - ver = Readline::VERSION - if ver[/edit/i] + Pry.config.input # by default, load Readline + + if !defined?(Readline) || Pry.config.input != Readline + warn "Sorry, you must be using Readline for Pry.auto_resize! to work." + return + end + + if Readline::VERSION =~ /edit/i warn <<-EOT -Readline version #{ver} detected - will not auto_resize! correctly. +Readline version #{Readline::VERSION} detected - will not auto_resize! correctly. For the fix, use GNU Readline instead: https://github.com/guard/guard/wiki/Add-proper-Readline-support-to-Ruby-on-Mac-OS-X EOT return end + trap :WINCH do begin Readline.set_screen_size(*Terminal.size!) From 87f8ac439e53c762441ef5743d9eeb4e1e6b48aa Mon Sep 17 00:00:00 2001 From: Ryan Fitzgerald Date: Sun, 2 Feb 2014 19:51:39 -0800 Subject: [PATCH 11/19] Initialize History lazily, make it work without Readline --- lib/pry/history.rb | 17 ++++++++++++----- lib/pry/pry_class.rb | 7 +++++-- spec/helper.rb | 3 --- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/pry/history.rb b/lib/pry/history.rb index 571a9318..1bef4a23 100644 --- a/lib/pry/history.rb +++ b/lib/pry/history.rb @@ -2,7 +2,6 @@ class Pry # The History class is responsible for maintaining the user's input history, # both internally and within Readline. class History - attr_accessor :loader, :saver, :pusher, :clearer # @return [Fixnum] Number of lines in history when Pry first loaded. @@ -17,10 +16,18 @@ class Pry # Assign the default methods for loading, saving, pushing, and clearing. def restore_default_behavior - @loader = method(:read_from_file) - @saver = method(:save_to_file) - @pusher = method(:push_to_readline) - @clearer = method(:clear_readline) + Pry.config.input # force Readline to load if applicable + + @loader = method(:read_from_file) + @saver = method(:save_to_file) + + if defined?(Readline) + @pusher = method(:push_to_readline) + @clearer = method(:clear_readline) + else + @pusher = proc { } + @clearer = proc { } + end end # Load the input history using `History.loader`. diff --git a/lib/pry/pry_class.rb b/lib/pry/pry_class.rb index cf284b89..e9ba2be5 100644 --- a/lib/pry/pry_class.rb +++ b/lib/pry/pry_class.rb @@ -10,11 +10,11 @@ class Pry attr_accessor :current_line attr_accessor :line_buffer attr_accessor :eval_path - attr_accessor :history attr_accessor :cli attr_accessor :quiet attr_accessor :last_internal_error attr_accessor :config + attr_writer :history def_delegators :@plugin_manager, :plugins, :load_plugins, :locate_plugins @@ -28,6 +28,10 @@ class Pry def prompt config.prompt end + + def history + @history ||= History.new + end end def self.main @@ -276,7 +280,6 @@ Readline version #{Readline::VERSION} detected - will not auto_resize! correctly # Basic initialization. def self.init @plugin_manager ||= PluginManager.new - self.history ||= History.new reset_defaults locate_plugins end diff --git a/spec/helper.rb b/spec/helper.rb index 0290d0d6..60193949 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -15,9 +15,6 @@ require 'spec_helpers/bacon' require 'spec_helpers/mock_pry' require 'spec_helpers/repl_tester' -# FIXME: temporary until history is fixed to not need Readline -require 'readline' - class Module public :remove_const public :remove_method From fdc8715e09d3f909574d8f387c43a9ccae7e66f1 Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Mon, 3 Feb 2014 12:35:23 +0100 Subject: [PATCH 12/19] add spec/integration/readline_spec.rb --- .travis.yml | 4 ++++ Rakefile | 2 +- spec/integration/readline_spec.rb | 11 +++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 spec/integration/readline_spec.rb diff --git a/.travis.yml b/.travis.yml index 743f5872..e5c3f5db 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,10 @@ rvm: - jruby-19mode - jruby-head +script: + - rake spec + - bundle exec bacon spec/integration/readline_spec.rb + matrix: allow_failures: - rvm: ruby-head diff --git a/Rakefile b/Rakefile index 70e84c45..f4439ad0 100644 --- a/Rakefile +++ b/Rakefile @@ -42,7 +42,7 @@ task :test do if explicit_list = ENV['run'] explicit_list.split(',') else - Dir['spec/**/*_spec.rb'].shuffle! + (Dir['spec/**/*_spec.rb'] - Dir["spec/integration/**/*_spec.rb"]).shuffle! end run_specs paths end diff --git a/spec/integration/readline_spec.rb b/spec/integration/readline_spec.rb new file mode 100644 index 00000000..3ff77237 --- /dev/null +++ b/spec/integration/readline_spec.rb @@ -0,0 +1,11 @@ +require "bundler/setup" +require "bacon" + +describe "Readline" do + describe "on require of 'pry'" do + it "is not made available" do + require('pry').should.be.true + defined?(Readline).should.be.nil + end + end +end From a9209f2d2cf2cce209dff234176d234a6bbeedd0 Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Mon, 3 Feb 2014 12:46:33 +0100 Subject: [PATCH 13/19] integration/readline_spec.rb => isolation/readline_spec.rb --- Rakefile | 2 +- spec/{integration => isolation}/readline_spec.rb | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) rename spec/{integration => isolation}/readline_spec.rb (99%) diff --git a/Rakefile b/Rakefile index f4439ad0..c427a5e7 100644 --- a/Rakefile +++ b/Rakefile @@ -42,7 +42,7 @@ task :test do if explicit_list = ENV['run'] explicit_list.split(',') else - (Dir['spec/**/*_spec.rb'] - Dir["spec/integration/**/*_spec.rb"]).shuffle! + (Dir['spec/**/*_spec.rb'] - Dir["spec/isolation/*_spec.rb"]).shuffle! end run_specs paths end diff --git a/spec/integration/readline_spec.rb b/spec/isolation/readline_spec.rb similarity index 99% rename from spec/integration/readline_spec.rb rename to spec/isolation/readline_spec.rb index 3ff77237..0b1478a9 100644 --- a/spec/integration/readline_spec.rb +++ b/spec/isolation/readline_spec.rb @@ -1,6 +1,5 @@ require "bundler/setup" require "bacon" - describe "Readline" do describe "on require of 'pry'" do it "is not made available" do From bd123d9674cd8781aab1521734e1b0a595595670 Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Mon, 3 Feb 2014 12:50:27 +0100 Subject: [PATCH 14/19] update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e5c3f5db..95574215 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ rvm: script: - rake spec - - bundle exec bacon spec/integration/readline_spec.rb + - bundle exec bacon spec/isolation/readline_spec.rb matrix: allow_failures: From ce25a5e476276ed2ca2576146901bb3c11c1d585 Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Mon, 3 Feb 2014 13:09:11 +0100 Subject: [PATCH 15/19] fix build on MRI1.9, 2.0.0 --- spec/completion_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/completion_spec.rb b/spec/completion_spec.rb index 1d710bfb..9379d6a1 100644 --- a/spec/completion_spec.rb +++ b/spec/completion_spec.rb @@ -8,7 +8,7 @@ end describe 'Bond-based completion' do it "should use Bond if it's available" do - if defined?(Bond) && Readline::VERSION !~ /editline/i + if defined?(Bond) && defined?(Readline) && Readline::VERSION !~ /editline/i Pry.config.completer.should == Pry::BondCompleter else Pry.config.completer.should == Pry::InputCompleter From be5050a4e17373a9606af4b9770f74e377980210 Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Mon, 3 Feb 2014 13:21:34 +0100 Subject: [PATCH 16/19] eager-load 'completer' via Default in completion_spec.rb --- spec/completion_spec.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/spec/completion_spec.rb b/spec/completion_spec.rb index 9379d6a1..6ab6647f 100644 --- a/spec/completion_spec.rb +++ b/spec/completion_spec.rb @@ -7,11 +7,16 @@ def completer_test(bind, pry=nil, assert_flag=true) end describe 'Bond-based completion' do + before do + @local = Pry::Config.new Pry::Config::Default.new + @local.completer + end + it "should use Bond if it's available" do if defined?(Bond) && defined?(Readline) && Readline::VERSION !~ /editline/i - Pry.config.completer.should == Pry::BondCompleter + @local.completer.should == Pry::BondCompleter else - Pry.config.completer.should == Pry::InputCompleter + @local.completer.should == Pry::InputCompleter end end end From b4d805f63b5c4837e9e68d9bcf793a971dda0612 Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Mon, 3 Feb 2014 13:46:51 +0100 Subject: [PATCH 17/19] confirm 'Readline' is made available on Pry.start(). --- spec/isolation/readline_spec.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spec/isolation/readline_spec.rb b/spec/isolation/readline_spec.rb index 0b1478a9..7f5fb79f 100644 --- a/spec/isolation/readline_spec.rb +++ b/spec/isolation/readline_spec.rb @@ -7,4 +7,11 @@ describe "Readline" do defined?(Readline).should.be.nil end end + + describe "on invoke of 'pry'" do + it "is made available" do + Pry.start self, input: StringIO.new("exit-all\n"), output: StringIO.new + defined?(Readline).should == "constant" + end + end end From f4445df7d7db6b92599d3462875a49690a19bd1a Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Mon, 3 Feb 2014 13:54:39 +0100 Subject: [PATCH 18/19] mention pry-coolline as an alternative when 'readline' is unavailable. --- lib/pry/config/default.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/pry/config/default.rb b/lib/pry/config/default.rb index 49d588ab..c5d9d48d 100644 --- a/lib/pry/config/default.rb +++ b/lib/pry/config/default.rb @@ -105,6 +105,7 @@ private warn "Possible solutions:" warn " * Rebuild Ruby with Readline support using `--with-readline`" warn " * Use the rb-readline gem, which is a pure-Ruby port of Readline" + warn " * Use the pry-coolline gem, a pure-ruby alternative to Readline" raise end From 0dd077a838001adea59bb5bfa15425fcff2376c5 Mon Sep 17 00:00:00 2001 From: Robert Gleeson Date: Mon, 3 Feb 2014 13:58:46 +0100 Subject: [PATCH 19/19] update CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6333bde5..933f8d5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,7 +21,8 @@ * User can whitelist objects whose inspect output should appear in prompt (#885) * See `Pry.config.prompt_safe_objects` * `whereami` is now aliased to `@` -* improve configuration(Pry.config) to lazy-load default configuration values. (#1096) +* default configuration(Pry.config) lazy loads its values. (#1096) +* require of 'readline' is delayed until Pry.start() has been called for the first time. (#1117) #### Bug fixes, etc. * `binding.pry` inside `.pryrc` file now works, with some limitations (@richo / #1118)