Pry (software)

{{short description|Shell interface for the Ruby programming language}}

{{Infobox Software

| name = Pry REPL

| logo = Pry REPL Logo.png

| logo size = 250px

| screenshot =

| developer = John Mair (banisterfiend), Conrad Irwin, [https://github.com/pry/pry/graphs/contributors …many more]

| latest release version = 0.11.1

| latest release date = {{release date|2017|09|26}}

| operating system = Cross-platform

| platform = Ruby interpreter

| programming language = Ruby

| genre = Ruby shell

| license = [https://raw.github.com/pry/pry/master/LICENSE]
MIT License

| website = {{URL|https://pry.github.io}}

}}

Pry is an interactive shell for the Ruby programming language. It is notable for its Smalltalk-inspiredThe Pry Ecosystem — John Mair, 2012 [http://banisterfiend.wordpress.com/2012/02/14/the-pry-ecosystem/ link] ability to start a REPL within a running program. This lets programmers debug and modify the current state of a system.

Features

Pry exposes most of its introspective capabilities using a filesystem metaphor.Pry — Reuven M. Lerner, LinuxJournal, July 2012, pp28 [http://www.linuxjournaldigital.com/linuxjournal/201207?pg=34#pg28 link], or [https://dl.acm.org/doi/fullHtml/10.5555/2346888.2346893] For example, it has a cd command to start interacting with a particular object, and uses ls to list methods and variables.

It is possible to start Pry at any point inside a running program.Interactive Debugging With Pry — Alan MacDougall, 2012 [http://www.alanmacdougall.com/blog/2012/06/08/interactive-debugging-with-pry/ link], or [https://alanmacdougall.com/technical-writing/2012-06-08-interactive-debugging-with-pry/] Due to the reflective nature of Ruby, this lets the programmer inspect the program, change its current state, or correct the source code without restarting the process.

A number of third party plugins are available for Pry, these add tighter integration with other Ruby projects, enhance the abilities of Pry itself, and make Pry available over a remote connection.

See also

{{Portal|Free and open-source software}}

References