Skip to content

Instantly share code, notes, and snippets.

View tomchapin's full-sized avatar

Tom Chapin tomchapin

View GitHub Profile
--database=postgresql
--skip-test-unit
--skip-bundle
--template=https://gist.github.com/jwaldrip/5538342/raw/rails-template.rb
@tomchapin
tomchapin / gist:5666208
Created May 28, 2013 21:15
Session Debugger (put in application_controller.rb). Courtesy of Jason Waldrip.
def session_with_debug
SessionDebugger.new(session_without_debug)
end
alias_method_chain :session, :debug
class SessionDebugger < SimpleDelegator
def []=(key, val)
puts "#{caller.first} SET session:#{key} TO #{val.inspect}"
@tomchapin
tomchapin / .railsrc
Last active December 17, 2015 03:09 — forked from jwaldrip/.railsrc
--database=postgresql
--skip-test-unit
--skip-bundle
--template=https://gist.github.com/tomchapin/5541218/raw/rails-template.rb
# If the source arrays don't have nil in them, you only need to extend the first array with nils, zip will automatically pad the others with nil. This also means you get to use compact to clean the extra entries out which is hopefully more efficient than explicit loops
def interleave(a,*args)
max_length = args.map(&:size).max
padding = [nil]*[max_length-a.size, 0].max
(a+padding).zip(*args).flatten.compact
end
# Here is a slightly more complicated version that works if the arrays do contain nil
@tomchapin
tomchapin / fish_prompt.fish
Last active December 10, 2020 11:16
My custom Fish prompt (with Git status). Based loosely on the "Terlar" theme. Place this file at ~/.config/fish/functions/fish_prompt.fish
set -xg fish_color_user d75fff
set -xg fish_color_host d78700
set -xg fish_color_git_added 00ff00
set -xg fish_color_git_clean 00ff00
set -xg fish_color_git_copied ff00ff
set -xg fish_color_git_deleted ff5f00
set -xg fish_color_git_dirty ff5f00
set -xg fish_color_git_modified 00afff
set -xg fish_color_git_renamed ff00ff
@tomchapin
tomchapin / player_selector.rb
Created April 12, 2013 16:59
A quick ruby script that takes a series of player names as command line arguments and pairs them up with each other in random fashion. Example usage: > ruby player_selector.rb Bob John Jim Billy George
require 'active_support/core_ext/string/inflections'
require 'colorize'
players = ARGV.clone
raise 'You must specify players (separated by spaces) as parameters.' and exit(1) unless players.count > 0
until players.count == 0
player1, player2 = players.shuffle!.slice!(0,2)
player2 ||= "Bot(AI)"