Created
July 30, 2010 17:14
-
-
Save imajes/500922 to your computer and use it in GitHub Desktop.
This file contains 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
# taken from @jsmestad's gist - http://gist.github.com/406963 | |
require 'pp' | |
# Make gems available | |
require 'rubygems' | |
# Dr Nic's gem inspired by | |
# http://redhanded.hobix.com/inspect/stickItInYourIrbrcMethodfinder.html | |
require 'what_methods' | |
require 'ap' | |
# Print information about any HTTP requests being made | |
require 'net-http-spy' | |
# Wirble is a set of enhancements for irb | |
# http://pablotron.org/software/wirble/README | |
# Implies require 'pp', 'irb/completion', and 'rubygems' | |
require 'wirble' | |
Wirble.init | |
# Enable colored output | |
Wirble.colorize | |
## LOAD ORDER IS IMPORTANT HERE | |
# Draw ASCII tables | |
require 'hirb' | |
require 'hirb/import_object' | |
#Hirb.enable | |
#extend Hirb::Console | |
# 'lp' to show method lookup path | |
require 'looksee/shortcuts' | |
# Load the readline module. | |
IRB.conf[:USE_READLINE] = true | |
# Remove the annoying irb(main):001:0 and replace with >> | |
IRB.conf[:PROMPT_MODE] = :SIMPLE | |
# Tab Completion | |
require 'irb/completion' | |
# Automatic Indentation | |
IRB.conf[:AUTO_INDENT]=true | |
# Save History between irb sessions | |
require 'irb/ext/save-history' | |
IRB.conf[:SAVE_HISTORY] = 100 | |
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-save-history" | |
# Clear the screen | |
def clear | |
system 'clear' | |
if ENV['RAILS_ENV'] | |
return "Rails environment: " + ENV['RAILS_ENV'] | |
else | |
return "No rails environment - happy hacking!"; | |
end | |
end | |
#alias_method :clear, :clr | |
# quick quit | |
def q | |
quit | |
end | |
# Load / reload files faster | |
# http://www.themomorohoax.com/2009/03/27/irb-tip-load-files-faster | |
def fl(file_name) | |
file_name += '.rb' unless file_name =~ /\.rb/ | |
@@recent = file_name | |
load "#{file_name}" | |
end | |
def rl | |
fl(@@recent) | |
end | |
# Reload the file and try the last command again | |
# http://www.themomorohoax.com/2009/04/07/ruby-irb-tip-try-again-faster | |
def rt | |
rl | |
eval(choose_last_command) | |
end | |
# prevent 'rt' itself from recursing. | |
def choose_last_command | |
real_last = Readline::HISTORY.to_a[-2] | |
real_last == 'rt' ? @@saved_last : (@@saved_last = real_last) | |
end | |
# Method to pretty-print object methods | |
# Coded by sebastian delmont | |
# http://snippets.dzone.com/posts/show/2916 | |
class Object | |
ANSI_BOLD = "\033[1m" | |
ANSI_RESET = "\033[0m" | |
ANSI_LGRAY = "\033[0;37m" | |
ANSI_GRAY = "\033[1;30m" | |
# Print object's methods | |
def pm(*options) | |
methods = self.methods | |
methods -= Object.methods unless options.include? :more | |
filter = options.select {|opt| opt.kind_of? Regexp}.first | |
methods = methods.select {|name| name =~ filter} if filter | |
data = methods.sort.collect do |name| | |
method = self.method(name) | |
if method.arity == 0 | |
args = "()" | |
elsif method.arity > 0 | |
n = method.arity | |
args = "(#{(1..n).collect {|i| "arg#{i}"}.join(", ")})" | |
elsif method.arity < 0 | |
n = -method.arity | |
args = "(#{(1..n).collect {|i| "arg#{i}"}.join(", ")}, ...)" | |
end | |
klass = $1 if method.inspect =~ /Method: (.*?)#/ | |
[name, args, klass] | |
end | |
max_name = data.collect {|item| item[0].size}.max | |
max_args = data.collect {|item| item[1].size}.max | |
data.each do |item| | |
print " #{ANSI_BOLD}#{item[0].to_s.rjust(max_name)}#{ANSI_RESET}" | |
print "#{ANSI_GRAY}#{item[1].ljust(max_args)}#{ANSI_RESET}" | |
print " #{ANSI_LGRAY}#{item[2]}#{ANSI_RESET}\n" | |
end | |
data.size | |
end | |
end | |
# http://sketches.rubyforge.org/ | |
require 'sketches' | |
Sketches.config :editor => ENV['EDITOR'] | |
# Easily print methods local to an object's class | |
class Object | |
def local_methods | |
(methods - Object.instance_methods).sort | |
end | |
end | |
# Log to STDOUT if in Rails | |
if ENV.include?('RAILS_ENV') && !Object.const_defined?('RAILS_DEFAULT_LOGGER') | |
require 'logger' | |
RAILS_DEFAULT_LOGGER = Logger.new(STDOUT) | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment