mirror of
https://github.com/pry/pry.git
synced 2022-11-09 12:35:05 -05:00
367e076670
Since banister begged me to do that... completely rewrite `cd -` command (implemetation is much simpler now). This commit brings such changes: * completely rewrite behavior of `cd -` command; * implement ScratchPad aka Pad for unit testing purposes (by banister); * use Pad riches in the unit tests for `cd -` command; * remove verbose and clunky unit tests; This commit brings new meaning to the `cd -` command. The main difference is that the new command saves entire binding stack, not just the last binding. Let me show you an example of the variance between these two implemetations: * Old `cd -` implementation saves *only* last binding. With our next `cd -` invocation our interjacent results are lost: [1] pry(main)> cd 1/2/3/../4 [2] pry(4):3> cd - [3] pry(main)> cd - [4] pry(4):1> nesting Nesting status: -- 0. main (Pry top level) 1. 4 Also, there are a few bugs in old `cd -` command: * you type `cd :foo`, `cd 1/2/3` and `cd -`. The last command relocates you to the scope of `3` (leaves you where you was), when `:foo` is expected; * you type `cd :foo`, `cd 1/2/3/../4`, `cd -`. The last command relocates you to the scope of `3`, when `:foo` is expected. * New and shiny `cd -` is devoid of those shortcomings: [1] pry(main)> cd 1/2/3/../4 [2] pry(4):3> cd - [3] pry(main)> cd - [4] pry(4):3> nesting Nesting status: -- 0. main (Pry top level) 1. 1 2. 2 3. 4 As I said before, this solution is *much* simpler and less error-prone. Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com> |
||
---|---|---|
.. | ||
test_default_commands | ||
candidate_helper1.rb | ||
candidate_helper2.rb | ||
helper.rb | ||
test_cli.rb | ||
test_code.rb | ||
test_command.rb | ||
test_command_helpers.rb | ||
test_command_integration.rb | ||
test_command_set.rb | ||
test_completion.rb | ||
test_control_d_handler.rb | ||
test_exception_whitelist.rb | ||
test_history_array.rb | ||
test_hooks.rb | ||
test_indent.rb | ||
test_input_stack.rb | ||
test_method.rb | ||
test_pry.rb | ||
test_pry_defaults.rb | ||
test_pry_history.rb | ||
test_pry_output.rb | ||
test_sticky_locals.rb | ||
test_syntax_checking.rb | ||
test_wrapped_module.rb | ||
testrc | ||
testrcbad |