Skip to content

Instantly share code, notes, and snippets.

@ndbroadbent
Forked from cpetschnig/.irbrc
Created December 10, 2011 06:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ndbroadbent/1454728 to your computer and use it in GitHub Desktop.
Save ndbroadbent/1454728 to your computer and use it in GitHub Desktop.
IRB customization: load wirble, looksee and awesome_print; cheat bundler
require 'rubygems'
@irb_extensions = []
def require_with_bundler_fallback(gem_name, load_file = nil)
load_file ||= gem_name
begin
require load_file
rescue LoadError => e
gem_paths = []
Gem.path.each do |sys_gem_path|
Dir[sys_gem_path + '/gems/*'].each do |gem_path|
gem_paths << gem_path if %r{#{gem_name}} =~ gem_path
end
end
if gem_paths.empty?
error = LoadError.new("It seems like #{gem_name} is not installed.")
class << error; def skip_backtrace?; true; end; end
raise error
end
$:.unshift File.join(gem_paths.sort_by(&:to_s).last, "lib")
require load_file
end
yield if block_given?
@irb_extensions << gem_name
rescue Exception => err
msg = "Couldn't load #{gem_name}: #{err}"
msg << "\n#{err.backtrace[0..10].join("\n")}" unless err.respond_to?(:skip_backtrace?) && err.skip_backtrace?
warn msg
end
require_with_bundler_fallback 'wirble' do
require 'wirble'
Wirble.init
colors = Wirble::Colorize.colors.merge({
:string => :red
})
Wirble::Colorize.colors = colors
Wirble.colorize
end
require_with_bundler_fallback 'looksee' do
Looksee.default_width = 160
end
require_with_bundler_fallback 'awesome_print', 'ap'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment