Description
Improvements for Ruby's IRB console, like colored output and a lot of debugging and introspection methods. Unlike with PRY, you are still in your normal IRB. It is designed to work out-of-the-box, so there is no reason to not use it!
irbtools alternatives and similar gems
Based on the "IRB" category.
Alternatively, view irbtools alternatives based on common mentions on social networks and blogs.
-
Hirb
A mini view framework for console/irb that's easy to use, even while under its influence. Console goodies include a no-wrap table, auto-pager, tree and menu.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of irbtools or a related project?
Popular Comparisons
README
Irbtools
_| _|
_|_|_| _|_|_| _|_|_| _| _| _| _|_|_| _|
_| _| _| _| _| _|_|_|_| _|_| _|_| _| _|_|_| _| _| _|
_| _|_|_| _|_|_| _| _| _| _| _| _| _|_| _| _|_| _|
_| _| _| _| _| _| _| _| _| _| _| _|_| _| _| _|
_|_|_| _| _| _|_|_| _| _|_| _|_| _|_| _| _|_|_| _| _|_|_| _|
_| _|
Improvements for Ruby's IRB console, like syntax highlighted output and a lot of debugging and introspection methods. Unlike with PRY, you are still in your normal IRB. It is designed to work out-of-the-box, so there is no reason to not use it!
Setup
$ gem install irbtools
IRB executes code in ~/.irbrc
on start-up. If the file does not exist, yet,
just create a new one. Add the following content:
require 'irbtools'
You also need to add irbtools to your project's Gemfile
:
gem 'irbtools', require: 'irbtools/binding'
Then start IRB (with Irbtools loaded) from the terminal or directly from your code with:
binding.irb
Enable More Gems
Some suggested gems will not be installed to ensure wider general support. For
the full feature set, you can install irbtools-more. To do so, change your
.irbrc
to:
require 'irbtools/more'
and edit your Gemfile
to read like this:
gem 'irbtools-more', require: 'irbtools/binding'
Features
Irbtools' IRB Improvements
- Syntax highlighting (wirb / fancy_irb)
- Loads included third party libraries effeciently
- Customizable views for specfic options using hirb
- ActiveRecord results get displayed as a table
- (irbtools-more) Improved tab-completion
Irbtools' Included Methods for IRB
Highlights
- Lookup and manipulate instance variables / methods with ease using object_shadow
- (irbtools-more) Go even further with looksee, the best lookup path inspection tool out there
- Display a method's source code using code
- Inline access to ri docs by ori
- If you have deactivated ri, you can re-generate the docs with something like:
rvm docs generate-ri
- If you have deactivated ri, you can re-generate the docs with something like:
- Find methods that turn one value into another value with methodfinder
- Use VIM from inside IRB
Ruby Introspection
Method / Constant | Arguments | Description | Provided By |
---|---|---|---|
code |
object = self, method_name | Display the method source with syntax highlighting. Will also look up C methods if the core_docs gem (which is included in irbtools-more) is available. | code |
howtocall |
object = self, method_or_proc | Display parameter names and types you will need to call a method | debugging/howtocall |
mf |
object1, object2 | Find methods which turn one value into another value | methodfinder |
mof |
object, depth = 0, grep = // | Print a method list, ordered by modules (looksee lite) | debugging |
Object#lp |
(irbtools-more) Supercharged method introspection in IRB | looksee | |
Object#ri |
*args | Show ri documentation for this object or method | ori |
Object#shadow |
Manipulate instance variables and learn about callable methods | object_shadow |
Platform Info
Method / Constant | Arguments | Description | Provided By |
---|---|---|---|
OS |
Query operating system information | os | |
RubyVersion |
Show the Ruby version | ruby_version | |
RubyEngine |
Show the Ruby engine | ruby_engine | |
RubyInfo |
List general information about the Ruby environment | ruby_info |
General Utils
Method / Constant | Arguments | Description | Provided By |
---|---|---|---|
beep |
Ring terminal bell | debugging/beep | |
copy |
string | Copy something to the clipboard | clipboard |
colorize |
string | Syntax-highlight a string of Ruby code | coderay, irbtools |
ed / emacs / mate / mvim / nano / vi / vim |
filename = nil | Start an editor in the session context | interactive_editor |
ld |
file | Shortcut for load lib.to_s + '.rb' |
every_day_irb |
pa |
string, color | Print a string in the specified color | paint |
page |
what, options = {} | Use pager to improve viewing longer content | hirb, irbtools |
paste |
Paste clipboard content | clipboard | |
q |
*args | Like Kernel#p , but prints results on one line, with different colors |
debugging/q |
re |
string, regexg, groups = nil | Regex debugging helper | debugging/re |
rq |
lib | Shortcut for require lib.to_s . Use it like this: rq:prime |
every_day_irb |
rr |
lib | Shortcut for require_relative lib.to_s |
every_day_irb |
rrq / rerequire |
lib | Hack to remove a library from $LOADED_FEATURES and require it again |
every_day_irb |
wp |
inspect_string | Syntax-highlight a Ruby return value | wirb |
IRB Support
Method / Constant | Arguments | Description | Provided By |
---|---|---|---|
clear |
Clear the terminal | every_day_irb | |
copy_input |
Copy session history to the clipboard | clipboard, irbtools | |
copy_output |
Copy session output history to the clipboard | clipboard, irbtools | |
reset! |
Restart the current IRB session | every_day_irb | |
session_history |
number_of_lines = nil | Return a string of all commands issued in the current session | every_day_irb |
Files and Navigation
Method / Constant | Arguments | Description | Provided By |
---|---|---|---|
cat |
path | Read file contents | every_day_irb |
cd |
path = nil | Change the directory. Can also be used in these forms: ~cd (change to home directory), -cd (change to previous directory) |
cd |
chmod |
mode, path | Set file mode for file | fileutils |
chmod_R |
mode, path | Set file mode for directory | fileutils |
chown |
user, group, path | Set file owner for file | fileutils |
chown_R |
user, group, path | Set file owner for directory | fileutils |
cp |
source, destination | Copy file | fileutils |
cp_r |
source, destination | Copy directory | fileutils |
ls |
path = "." | List directory content | fileutils |
ln |
target, link | Create symlink (ln ) |
fileutils |
ln_s |
target, link | Create symlink (ln -s ) |
fileutils |
ln_sf |
target, link | Create symlink (ln -sf ) |
fileutils |
mkdir |
path | Create a new directory | fileutils |
mkdir_p |
path | Create a new directory (with -p option) |
fileutils |
cp |
source, destination | Move file or directory | fileutils |
pwd |
Return current directory | fileutils | |
ray |
path | Syntax highlight a Ruby file | coderay, irbtools |
rm |
path | Delete a file (rm ) |
fileutils |
rm_r |
path | Delete a file or directory (rm -r ) |
fileutils |
rm_rf |
path | Delete a file or directory, with force (rm -rf ) |
fileutils |
rmdir |
path | Delete an empty directory | fileutils |
Advanced Tweaking
See CONFIGURE.md.
Troubleshooting: ANSI colors on Windows
Windows: ANSI support can be enabled via ansicon or ConEmu or WSL.
Troubleshooting: Clipboard not working on Linux
Clipboard support requires xsel or xclip. On ubuntu, do:
sudo apt-get install xsel
Hint: Debundle
If you do not want to add Irbtools to your project's Gemfile
, you will need a
debundle hack. Put it at the
beginning of your ~/.irbrc
file and you are fine.
Hint: No ANSI / IRB extension
You can use Irbtools without colors/IRB extensions. To do so, put this into ~/.irbrc
:
require 'irbtools/non_fancy'
Irbtools.start
Hint: Web Console and Other Approaches
Irbtools works well together with the amazing web-console!, and also with the ripl IRB alternative.
J-_-L
Copyright (c) 2010-2021 Jan Lelis https://janlelis.com released under the MIT license.
*Note that all licence references and agreements mentioned in the irbtools README section above
are relevant to that project's source code only.