All Projects β†’ janlelis β†’ Irbtools

janlelis / Irbtools

Licence: mit
Improvements for Ruby's IRB console πŸ’ŽοΈŽ

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Irbtools

Cmd2
cmd2 - quickly build feature-rich and user-friendly interactive command line applications in Python
Stars: ✭ 342 (-60.6%)
Mutual labels:  terminal, developer-tools
Influx Prompt
An interactive command-line InfluxDB cli with auto completion.
Stars: ✭ 42 (-95.16%)
Mutual labels:  terminal, developer-tools
Curlie
The power of curl, the ease of use of httpie.
Stars: ✭ 877 (+1.04%)
Mutual labels:  terminal, developer-tools
Run
⚑The resource runtime
Stars: ✭ 90 (-89.63%)
Mutual labels:  terminal, developer-tools
Httpie
As easy as /aitch-tee-tee-pie/ πŸ₯§ Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie
Stars: ✭ 53,052 (+6011.98%)
Mutual labels:  terminal, developer-tools
Dksnap
Docker Snapshots for Development and Test Data
Stars: ✭ 122 (-85.94%)
Mutual labels:  terminal, developer-tools
Http Prompt
An interactive command-line HTTP and API testing client built on top of HTTPie featuring autocomplete, syntax highlighting, and more. https://twitter.com/httpie
Stars: ✭ 8,329 (+859.56%)
Mutual labels:  terminal, developer-tools
Haxor News
Browse Hacker News like a haxor: A Hacker News command line interface (CLI).
Stars: ✭ 3,342 (+285.02%)
Mutual labels:  terminal, developer-tools
Saws
A supercharged AWS command line interface (CLI).
Stars: ✭ 4,886 (+462.9%)
Mutual labels:  terminal, developer-tools
Ninjaterm
A serial port terminal that's got your back.
Stars: ✭ 24 (-97.24%)
Mutual labels:  terminal
Wappalyzer
Identify technology on websites.
Stars: ✭ 7,245 (+734.68%)
Mutual labels:  developer-tools
Glerminal
A lightweight terminal made with OpenGL
Stars: ✭ 24 (-97.24%)
Mutual labels:  terminal
Devconsole Operator
Enable a developer-focused view in OpenShift 4 web console
Stars: ✭ 25 (-97.12%)
Mutual labels:  developer-tools
Glauth
A lightweight LDAP server for development, home use, or CI
Stars: ✭ 850 (-2.07%)
Mutual labels:  developer-tools
Git Praise
A nicer git blame.
Stars: ✭ 24 (-97.24%)
Mutual labels:  terminal
Termynal
⬛️ Lightweight and modern terminal animations using async/await
Stars: ✭ 858 (-1.15%)
Mutual labels:  terminal
Downloadlargefilesbyurl
DownloadLargeFilesByUrl is a GAS library for downloading large files from URL to Google Drive using Google Apps Script (GAS).
Stars: ✭ 24 (-97.24%)
Mutual labels:  developer-tools
Libspinner
A pure C single-header library with 70+ configurable terminal spinner/progress indicators.
Stars: ✭ 24 (-97.24%)
Mutual labels:  terminal
Tabulate
Table Maker for Modern C++
Stars: ✭ 862 (-0.69%)
Mutual labels:  terminal
Tui Consolelauncher
Linux CLI Launcher for Android
Stars: ✭ 861 (-0.81%)
Mutual labels:  terminal

Irbtools [version] [ci]

                                                                                 _|          _|
 _|_|_|  _|_|_|    _|_|_|        _|                          _|                _|    _|_|_|    _|
   _|    _|    _|  _|    _|    _|_|_|_|    _|_|      _|_|    _|    _|_|_|      _|          _|  _|
   _|    _|_|_|    _|_|_|        _|      _|    _|  _|    _|  _|  _|_|          _|      _|_|    _|
   _|    _|    _|  _|    _|      _|      _|    _|  _|    _|  _|      _|_|      _|          _|  _|
 _|_|_|  _|    _|  _|_|_|    _|    _|_|    _|_|      _|_|    _|  _|_|_|        _|    _|_|_|    _|
                                                                                 _|          _|

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
  • 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-2020 Jan Lelis https://janlelis.com released under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].