Ruby irb Command History

If you spend any amount of time working with Ruby in the interactive shell (irb), what follows is a handy script for adding command completion support as well as command history across irb sessions.

require 'irb/completion'
require 'irb/ext/save-history'

ARGV.concat [ "--readline",
              "simple" ]

# 25 entries in the list
IRB.conf[:SAVE_HISTORY] = 25

# Store results in home directory with specified file name
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-history"

The reference to SAVE_HISTORY is how many commands you want to store in the history list and the HISTORY_FILE is the name of the file where the commands are stored. Save the file as ~/.irbrc (in your home directory with the name .irbrc).

Below Ive enter several commands using irb. I used command completion (hitting tab key twice) on the line that begins with a.p and you can see how command completion shows the available options (a.pack, a.parition, etc).

Once I quite the irb session and open the .irb_history file it will look as follows:

Now, if I start a new irb session the commands in the history file be available by pressing the up arrow (not unlike the history available in a Terminal window). Although this configuration option is nothing new for those who been working with Ruby, it warrants mentioning for anyone who is just getting started with Ruby.

Leave a Reply

Your email address will not be published. Required fields are marked *