PRY(1) PRY(1)
NAME
PRY - A Reference to the PRY repl.
Synopsis
pry [--version] [--exec] [--no-pager] [--no-history] [--no-color] [-f]
[--no-plugins] [--installed-plugins] [--simple-prompt] [--require file]
[-I] [--context] [--help]
DESCRIPTION
Pry is a powerful alternative to the standard IRB shell for Ruby. It is
written from scratch to provide a number of advanced features.
HOMEPAGE
http://pry.github.com/
OPTIONS
-v --version
Prints the version of Pry.
-e --exec
Executes argument in context before the session starts.
--no-pager
Disable pager for long output.
--no-history
Disable history loading.
--no-color
Disable syntax highlighting for session.
-f Prevent loading of ~/.pryrc for session.
--no-plugins
Suppress loading of plugins.
--installed-plugins
List installed plugins.
--simple-prompt
Enable simple prompt mode (eg, >>).
-r --require
Require a ruby script at startup.
-I Add a path to the $LOAD_PATH
-c --context
Start the session in the specified context. Equivalent to con-
text.pry in a session.
FILES
~/.pryrc Personal pry initialization
EXAMPLES
Basic Usage
$ pry
[1] pry(main)>4 + 5
=> 9
[2] pry(main)> def hello_world
[2] pry(main)* puts "Hello, World!"
[2] pry(main)* end
=> nil
[3] pry(main)> hello_world
Hello, World!
=> nil
Command Line Interaction
Prefix any command you want your shell to execute with a period and pry
will return the results from your shell.
[1] pry(main)> .date
Fri Nov 11 09:52:07 EST 2011
On the command line enter shell-mode to incorporate the current working
directory into the Pry prompt.
pry(main)> shell-mode
pry main:/Users/john/ruby/projects/pry $ .cd ..
pry main:/Users/john/ruby/projects $ .cd ~
pry main:/Users/john $ .pwd
/Users/john
pry main:/Users/john $ shell-mode
pry(main)>
State Navigation
The cd command is used to move into a new object (or scope) inside a Pry
session. When inside the new scope it becomes the self for the session
and all commands and methods will operate on this new self.
pry(main)> self
=> main
pry(main)> cd Pry
pry(Pry):1> self
=> Pry
pry(Pry):1> cd ..
pry(main)>
The ls command is essentially a unified wrapper to a number of Ruby´s
introspection mechanisms, including (but not limited to) the following
methods: methods, instance_variables, constants, local_variables, in-
stance_methods, class_variables and all the various permutations
thereof.
By default typing ls will return a list of just the local and instance
variables available in the current context.
• The -M option selects public instance methods (if available).
• The -m option selects public methods.
• The -c option selects constants.
• The -i option select just instance variables.
• The -l option selects just local variables.
• The -s option modifies the -c and -m and -M options to go up the su-
perclass chain (excluding Object).
• The --grep REGEX prunes the list to items that match the regex.
Source Browsing
Simply typing show-method method_name will pull the source for the
method and display it with syntax highlighting. You can also look up the
source for multiple methods at the same time, by typing show-method
method1 method2. As a convenience, Pry looks up both instance methods
and class methods using this syntax, with priority given to instance
methods.
pry(Pry):1> show-method rep
From: /Users/john/ruby/projects/pry/lib/pry/pry_instance.rb @ line 191:
Number of lines: 6
def rep(target=TOPLEVEL_BINDING)
target = Pry.binding_for(target)
result = re(target)
show_result(result) if should_print?
end
AUTHORS
Pry is primarily the work of John Mair (banisterfiend)
June 2014 PRY(1)
Generated by dwww version 1.16 on Tue Dec 16 07:02:06 CET 2025.