irbtools
irbtools copied to clipboard
Improvements for Ruby's IRB console 💎︎
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.