Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a new readme section for IRB extension #673

Merged
merged 1 commit into from
Aug 29, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,23 @@ IRB stands for "interactive Ruby" and is a tool to interactively execute Ruby ex

The `irb` command from your shell will start the interpreter.

- [Installation](#installation)
- [Usage](#usage)
- [The `irb` Executable](#the-irb-executable)
- [The `binding.irb` Breakpoint](#the-bindingirb-breakpoint)
- [Commands](#commands)
st0012 marked this conversation as resolved.
Show resolved Hide resolved
- [Debugging with IRB](#debugging-with-irb)
- [More about `debug.gem`](#more-about-debuggem)
- [Advantages Over `debug.gem`'s Console](#advantages-over-debuggems-console)
- [Configuration](#configuration)
- [Environment Variables](#environment-variables)
- [Documentation](#documentation)
- [Extending IRB](#extending-irb)
- [Development](#development)
- [Contributing](#contributing)
- [Releasing](#releasing)
- [License](#license)

## Installation

> **Note**
Expand Down Expand Up @@ -228,6 +245,20 @@ However, there are also some limitations to be aware of:

https://docs.ruby-lang.org/en/master/IRB.html

## Extending IRB

IRB is currently going through some refactoring to bring in some cool improvements and make things more flexible for developers.
We know that in the past, due to a lack of public APIs and documentation, many of you have had to use IRB's private APIs
and components to extend it. We also know that changes can be a bit annoying and might mess with your current setup.

We're sorry if this causes a bit of a scramble. We're working hard to make IRB better and your input is super important to us.
If you've been using private APIs or components in your projects, we'd love to hear about your use cases. Please feel free to file a new issue. Your feedback will be a massive help in guiding us on how to design and prioritize the development of official APIs in the future.

Right now, we've got command extension APIs on the drawing board, as you can see in [#513](https://github.com/ruby/irb/issues/513).
We've also got a prototype for helper method extension APIs in the works, as shown in [#588](https://github.com/ruby/irb/issues/588).

We really appreciate your understanding and patience during this transition. We're pretty excited about the improvements these changes will bring to the IRB ecosystem and we hope you are too!

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
Expand Down