Created
August 24, 2015 03:20
-
-
Save ilake/9af5b19a4f9de6a8f4b9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Some default enhancements/settings for IRB, based on | |
# http://wiki.rubygarden.org/Ruby/page/show/Irb/TipsAndTricks | |
unless defined? ETC_IRBRC_LOADED | |
# Require RubyGems by default. | |
require 'rubygems' | |
# Activate auto-completion. | |
require 'irb/completion' | |
# Use the simple prompt if possible. | |
IRB.conf[:PROMPT_MODE] = :SIMPLE if IRB.conf[:PROMPT_MODE] == :DEFAULT | |
# Setup permanent history. | |
HISTFILE = "~/.irb_history" | |
MAXHISTSIZE = 100 | |
begin | |
histfile = File::expand_path(HISTFILE) | |
if File::exists?(histfile) | |
lines = IO::readlines(histfile).collect { |line| line.chomp } | |
puts "Read #{lines.nitems} saved history commands from '#{histfile}'." if $VERBOSE | |
Readline::HISTORY.push(*lines) | |
else | |
puts "History file '#{histfile}' was empty or non-existant." if $VERBOSE | |
end | |
Kernel::at_exit do | |
lines = Readline::HISTORY.to_a.reverse.uniq.reverse | |
lines = lines[-MAXHISTSIZE, MAXHISTSIZE] if lines.nitems > MAXHISTSIZE | |
puts "Saving #{lines.length} history lines to '#{histfile}'." if $VERBOSE | |
File::open(histfile, File::WRONLY|File::CREAT|File::TRUNC) { |io| io.puts lines.join("\n") } | |
end | |
rescue => e | |
puts "Error when configuring permanent history: #{e}" if $VERBOSE | |
end | |
ETC_IRBRC_LOADED=true | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment