1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00
Commit graph

12 commits

Author SHA1 Message Date
Kyrylo Silin
905bab4d7c Add support of aliases for Method
Fix issue #367 (stat command should display the list of aliases for a
given method).

You can get a list of aliases for a method like this:

  pry(main)> stat Array#map
  Method Information:
  --
  Name: map
  Alias: collect
  Owner: Array
  Visibility: public
  Type: Unbound
  Arity: 0
  Method Signature: map()
  Source Location: Not found.

Note that `Method#aliases` returns an Array of strings on MRI 1.8 and
friends, while on MRI 1.9 it returns an Array of symbols.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
2012-08-26 00:02:39 +03:00
John Mair
93bc98b72b normalize poetry identation 2012-08-25 23:18:28 +12:00
John Mair
ab2e78620f pessoa poem added. because i want to, and i can 2012-08-25 23:10:38 +12:00
Kyrylo Silin
704cc6e859 Store hist --replay <i> calls in history
Fix issue #484 (hist --replay N isn't stored in history).

First, make some small amendments to existing code:

  * Make helper methods of "hist" command private;

  * What an irony! Amend the name of the duplicated test in
    `test_input.rb` ("should not contain duplicated lines" test).

Secondly, resolve the issue. There is one notable moment in current
implementation. Although `hist --replay` calls are being stored in
history, you cannot "replay" entries of this kind (you cannot replay
another call request to replay). Let me show an example:

  [1] pry(main)> hist --show 46894
  46894: hist --replay 46675..46677
  [2] pry(main)> hist --show 46675..46677
  46675: 1+1
  46676: a = 100
  46677: hist --tail
  [3] pry(main)> hist --replay 46894
  Error: Replay index 46894 points out to another replay call: `hist -r 46675..46677`
  [4] pry(main)>

There are two reasons for that.

Reason one or my incompetence
-----------------------------

First of all, I simply failed to implement such behaviour. With current
state of things (that are introduced in this commit), if you do not
raise `Pry::CommandError`, you cannot guarantee that only user's input
is getting stored in history. Here's an example when we get unwanted
entry in history:

  [1] pry(main)> hist --show 46894
  46894: hist --replay 46675..46677
  [2] pry(main)> hist --show 46675..46677
  46675: 1+1
  46676: a = 100
  46677: hist --tail 4
  [3] pry(main)> hist --replay 46894
  => 2
  => 100
  47021: hist --show 46894
  47022: hist --show 46675..46677
  47023: hist --replay 46894
  47024: hist --replay 46675..46677
  [8] pry(main)>

Note that a user typed only `hist --replay 46894`. But the last saved
entry in history is the entry to which user's input, actually, pointed
out (`hist --replay 46675..46677`). So if you press up-arrow key, you
will get not what you expected.

Reason two or "Whoa, whoa, boy! There is a real reason"
-------------------------------------------------------

But the main reason is that you can fall into a loop trap, when both
"hist --replay" calls point to each other. Example of a loop trap:

  [31] pry(main)> hist --tail 4
  47027: hist --tail
  47028: hist --replay 47028
  47029: hist --tail
  47030: hist --replay 47032
  [32] pry(main)> hist -r 47030
  # We've just fallen into a loop trap. Let's break out of it.
  ^C
  [416] pry(main)> hist --tail 5
  47409: hist --replay 47032
  47410: hist --replay 47030
  47411: hist --replay 47032
  47412: hist --replay 47030
  47413: hist --replay 47032
  [417] pry(main)>

Note the number of current line (417).

Finally, add some unit tests for this commit.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
2012-08-23 02:27:02 +03:00
Conrad Irwin
3203f00218 filename completion for cat and shell 2012-08-21 00:44:26 -07:00
Conrad Irwin
84c154e275 Merge branch 'rking/bond' into HEAD 2012-08-21 00:02:51 -07:00
Conrad Irwin
246b88cf16 Bond completion includes commands 2012-08-20 23:57:51 -07:00
John Mair
991c73cd74 DEPRACTED --> DEPRECATED 2012-08-19 12:32:10 +12:00
Reginald Tan
3836179181 Depracated show-command and moved its functionality to show-source
Also, show-doc on commands now displays their banner
2012-08-14 00:18:53 -04:00
Jason Laster
f51fca89dc Revert "Revert "Merge pull request #678 from jasonLaster/tabcomplete""
This reverts commit 1234c90085.

Conflicts:

	lib/pry/completion.rb
	lib/pry/default_commands/cd.rb
	lib/pry/default_commands/input_and_output.rb
	test/test_completion.rb

Conflicts:

	test/test_completion.rb
2012-08-12 00:38:44 -04:00
Ryan Fitzgerald
1af4207c63 Restore groups, convert most commands to class syntax 2012-08-11 18:27:26 -07:00
Ryan Fitzgerald
8ce49ee081 Remove extended_commands, default_commands -> commands 2012-08-11 17:39:25 -07:00