Add jist as an alias for gist
added --disable-plugin and --select-plugin CLI options, closes #596
Fix various mangled documentation
Eliminate test failure
Change behavior of `cd -` command

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>
Merge pull request #615 from kyrylo/bugfixing_cd_hyphen_command

Change behavior of `cd -` command
Make tests for `cd` command use Pad

Currently, unit tests for `cd` command are varied in their
implementation. Standardize them by using freshly introduced ScratchPad.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Remove ScratchPad alias for Pad

ScratchPad is the "official" name that was taken from Rubinius. We are
not Rubinius, so we use Pad. Merely "Pad".

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Merge pull request #617 from kyrylo/removing-pad-alias

Remove ScratchPad alias for Pad
Merge pull request #616 from kyrylo/standardizing_cd_tests

Make tests for `cd` command use Pad
show class/module body when show-source invoked with no args
attempt to fix broken tests
Don't call .alias? in WrappedModule#source_location

Unfortunately, alias? requires loading the entire source code for each method,
so this can get pretty slow for modules that include hundreds of methods.
No select! on 1.8.7
Initial implementation of fast show-source command.

This requires an updated method_source gem. This approach works by reading all code between the start of the class definition
and the method with the highest line number in one go. Since we know this chunk of code is valid we can avoid the expensive eval-based validity checks.
Once we have primed the expression buffer with this chunk of code we then start the expensive checks looking for a complete expression, but there shouldn't be
many lines of code left since we've already processed the last method in the class definition. Using this technique i was able to show-source the 2000 line definition of
ActiveRecord::Base in under a second.
only look up geniuine class definitions, not code inside comments:P
Add "path with an exceptional situatuion" test

Implement a unit test which tests the situation, when a user's input is
a complex path that raises an execption. For example, the following
input raises NameError: `cd :toplevel`, `cd 1/2/hi`. We should ensure
that after the second expression our current binding is still
`:toplevel`.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Refactor and improve Command.group method

Make `help` command be able to display groups, that are taken from gem
names correctly.

In this commit:

  a) Refactor group method by means of an if statement (remove
     repetition of assignment process);

  b) Remove unwanted square brackets from the Regexp (they do nothing);

  c) Add supplementary Regexp part to the existing one. This clause
     needs an explication:

       The old Regexp didn't capture the following strings properly:
         - "pry-pluginname-0.1.0.pre";
         - "pry-pluginname-0.1.0.rc1";
         - "pry-pluginname-0.1.0.BETA";
         - and so on.

      Instead of this, the old Regexp did capture the strings mentioned
      above as `pry-pluginname-0.1.0.` (in all cases).

      By making the Regexp a bit looser, the `help` command, when
      invoked without arguments, can display extra suffixes in
      group names.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Extend further the Regexp of Command.group

Make it match the strings like:

  - "pry-pluginname-0.1.0.pre.3";
  - "pry-pluginname-0.1.0.pre.3.rc25";
  - "pry-pluginname-0.1.0.donno.maybe.rc_25";
  - and so on.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Merge pull request #625 from kyrylo/extend-command-group-regexp

Refactor and improve Command.group method