mirror of
https://github.com/pry/pry.git
synced 2022-11-09 12:35:05 -05:00
almost finished readme
This commit is contained in:
parent
a2bbd449fd
commit
fb5df5140d
1 changed files with 25 additions and 79 deletions
104
README.markdown
104
README.markdown
|
@ -418,7 +418,7 @@ avaiable.
|
||||||
|
|
||||||
### Other Features and limitations
|
### Other Features and limitations
|
||||||
|
|
||||||
#### Features:
|
#### Other Features:
|
||||||
|
|
||||||
* Pry can be invoked both at the command-line and used as a more
|
* Pry can be invoked both at the command-line and used as a more
|
||||||
powerful alternative to IRB or it can be invoked at runtime and used
|
powerful alternative to IRB or it can be invoked at runtime and used
|
||||||
|
@ -431,6 +431,11 @@ as a developer consoler / debugger.
|
||||||
* Use `_ex_` to recover the last exception.
|
* Use `_ex_` to recover the last exception.
|
||||||
* Use `_file_` and `_dir_` to refer to the associated file or
|
* Use `_file_` and `_dir_` to refer to the associated file or
|
||||||
directory containing the definition for a method.
|
directory containing the definition for a method.
|
||||||
|
* A trailing ';' on an entered expression suppresses the display of
|
||||||
|
the evaluation output.
|
||||||
|
* Typing `!` on a line by itself will clear the input buffer - useful for
|
||||||
|
getting you out of a situation where the parsing process
|
||||||
|
goes wrong and you get stuck in an endless read loop.
|
||||||
* Pry supports tab completion.
|
* Pry supports tab completion.
|
||||||
* Pry has multi-line support built in.
|
* Pry has multi-line support built in.
|
||||||
* Use `^d` (control-d) to quickly break out of a session.
|
* Use `^d` (control-d) to quickly break out of a session.
|
||||||
|
@ -448,86 +453,15 @@ for reading; `Pry#re` for eval; `Pry#rep` for printing; and `Pry#repl`
|
||||||
for the loop (`Pry.start` simply wraps `Pry.new.repl`). You can
|
for the loop (`Pry.start` simply wraps `Pry.new.repl`). You can
|
||||||
invoke any of these methods directly depending on exactly what aspect of the functionality you need.
|
invoke any of these methods directly depending on exactly what aspect of the functionality you need.
|
||||||
|
|
||||||
###Limitations:
|
#### Limitations:
|
||||||
|
|
||||||
* Some Pry commands (e.g `show-command`) do not work in Ruby 1.8.
|
* Some Pry commands (e.g `show-command`) do not work in Ruby 1.8.
|
||||||
* `method_source` functionality does not work in JRuby.
|
* `method_source` functionality does not work in JRuby with Ruby 1.8
|
||||||
* 1.9 support requires `Ripper` - some implementations may not support this.
|
* Color support does not work in JRUby with Ruby 1.9 (due to a
|
||||||
|
limitation in JRuby's regex).
|
||||||
Commands
|
* Tab completion is currently a bit broken/limited this will have a
|
||||||
-----------
|
major overhaul in a future version.
|
||||||
|
|
||||||
### The Pry API:
|
|
||||||
|
|
||||||
* `Pry.start()` Starts a Read-Eval-Print-Loop on the object it
|
|
||||||
receives as a parameter. In the case of no parameter it operates on
|
|
||||||
top-level (main). It can receive any object or a `Binding`
|
|
||||||
object as parameter. `Pry.start()` is implemented as `Pry.new.repl()`
|
|
||||||
* `obj.pry` and `pry(obj)` may also be used as alternative syntax to
|
|
||||||
`Pry.start(obj)`.
|
|
||||||
|
|
||||||
However there are some differences. `obj.pry` opens
|
|
||||||
a Pry session on the receiver whereas `Pry.start` (with no parameter)
|
|
||||||
will start a Pry session on top-level. The other form of the `pry`
|
|
||||||
method: `pry(obj)` will also start a Pry session on its parameter.
|
|
||||||
|
|
||||||
The `pry` method invoked by itself, with no explict receiver and no
|
|
||||||
parameter will start a Pry session on the implied receiver. It is
|
|
||||||
perhaps more useful to invoke it in this form `pry(binding)` or
|
|
||||||
`binding.pry` so as to get access to locals in the current context.
|
|
||||||
|
|
||||||
Another difference is that `Pry.start()` accepts a second parameter
|
|
||||||
that is a hash of configuration options (discussed further, below).
|
|
||||||
|
|
||||||
* If, for some reason you do not want to 'loop' then use `Pry.new.rep()`; it
|
|
||||||
only performs the Read-Eval-Print section of the REPL - it ends the
|
|
||||||
session after just one line of input. It takes the same parameters as
|
|
||||||
`Pry#repl()`
|
|
||||||
* Likewise `Pry#re()` only performs the Read-Eval section of the REPL,
|
|
||||||
it returns the result of the evaluation or an Exception object in
|
|
||||||
case of error. It also takes the same parameters as `Pry#repl()`
|
|
||||||
* Similarly `Pry#r()` only performs the Read section of the REPL, only
|
|
||||||
returning the Ruby expression (as a string). It takes the same parameters as all the others.
|
|
||||||
* `Pry.run_command COMMAND` enables you to invoke Pry commands outside
|
|
||||||
of a session, e.g `Pry.run_command "ls -m", :context => MyObject`. See
|
|
||||||
docs for more info.
|
|
||||||
|
|
||||||
### Session commands
|
|
||||||
|
|
||||||
Pry supports a few commands inside the session itself. These commands are
|
|
||||||
not methods and must start at the beginning of a line, with no
|
|
||||||
whitespace in between.
|
|
||||||
|
|
||||||
If you want to access a method of the same name, prefix the invocation by whitespace.
|
|
||||||
|
|
||||||
* Typing `!` on a line by itself will clear the input buffer - useful for
|
|
||||||
getting you out of a situation where the parsing process
|
|
||||||
goes wrong and you get stuck in an endless read loop.
|
|
||||||
* `status` shows status information about the current session.
|
|
||||||
* `whereami AROUND` shows the code context of the session. Shows
|
|
||||||
AROUND lines either side of the current line.
|
|
||||||
* `version` Show Pry version information
|
|
||||||
* `help` shows the list of session commands with brief explanations.
|
|
||||||
* `toggle-color` turns on and off syntax highlighting.
|
|
||||||
* `simple-prompt` toggles the simple prompt mode.
|
|
||||||
* `exit` or `quit` or `back` or `^d` (control-d) will end the current Pry session and go
|
|
||||||
back to the calling process or back one level of nesting (if there
|
|
||||||
are nested sessions).
|
|
||||||
* `ls [OPTIONS] [VAR]` returns a list of local variables, instance variables, and
|
|
||||||
methods, etc. Highly flexible. See `ls --help` for more info.
|
|
||||||
* `cat VAR` Calls `inspect` on `VAR`
|
|
||||||
* `cd VAR` Starts a `Pry` session on the variable VAR. E.g `cd @x`
|
|
||||||
(use `cd ..` to go back).
|
|
||||||
* `show-method [OPTIONS] METH` Displays the sourcecode for the method
|
|
||||||
`METH`. e.g `show-method hello`. See `show-method --help` for more info.
|
|
||||||
* `show-doc [OPTIONS] METH` Displays comments for `METH`. See `show-doc
|
|
||||||
--help` for more info.
|
|
||||||
* `show-command COMMAND` Displays the sourcecode for the given Pry
|
|
||||||
command. e.g: `show-command cd`
|
|
||||||
* `jump-to NEST_LEVEL` Unwinds the Pry stack (nesting level) until the appropriate nesting level is reached.
|
|
||||||
* `exit-all` breaks out of all Pry nesting levels and returns to the
|
|
||||||
calling process.
|
|
||||||
|
|
||||||
Syntax Highlighting
|
Syntax Highlighting
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
@ -580,3 +514,15 @@ Contact
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Problems or questions contact me at [github](http://github.com/banister)
|
Problems or questions contact me at [github](http://github.com/banister)
|
||||||
|
|
||||||
|
Contributors
|
||||||
|
------------
|
||||||
|
|
||||||
|
The Pry team consists of:
|
||||||
|
|
||||||
|
banisterfiend
|
||||||
|
epitron
|
||||||
|
injekt
|
||||||
|
Mon_Ouie
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue