irb-history

irb-history gives IRB persistent, shared Readline history by way of Distributed Ruby (DRb). What does that mean?

Persistent

irb-history-server stores its history in YAML in a file of your choice (the default is ~/.irb_history).

Shared

Load the irb-history client in your ~/.irbrc, and you'll instantly have access to the irb-history store. Every line you type is sent to the server and will appear in other clients' histories immediately.

Because irb-history uses DRb, you can share your history with other IRB sessions:

  • on the same computer

  • on other computers on your local network

  • on computers connected to the Internet (fun, but not recommended :))

Installation and usage

It's a simple process:

  1. Install the gem.

    $ gem install irb-history
    
  2. Start a history server listening on 127.0.0.1, port 26501 (see the irb-history-server documentation for more options).

    $ irb-history-server -d
    

    Note: If you wish to use irb-history on a network, you'll need to pass the -h flag with an appropriate address to listen on.

  3. Add three lines to your ~/.irbrc.

    require 'rubygems'
    require 'irb/history'
    IRB::History.start_client
    

    This connects to the history server on 127.0.0.1, port 26501. If you need to specify a different host and/or port, just pass a DRb URI to start_client. For example:

    IRB::History.start_client 'druby://galt:4000'
    

    connects to the history server on host galt, port 4000.

Source code

Check out the darcs repository:

$ darcs get http://dev.conio.net/repos/irb-history

License

irb-history is freely distributable under the terms of a MIT-style license.

Author

Sam Stephenson <sam@conio.net>