Skip to content

Instantly share code, notes, and snippets.

View stephaneliu's full-sized avatar

Stephane Liu stephaneliu

  • Hawaii
  • 18:27 (UTC -10:00)
View GitHub Profile
@michaeldwan
michaeldwan / heroku_deploy.rake
Created July 4, 2010 02:08
Simple Rake task for customizing deployment to Heroku
# List of environments and their heroku git remotes
ENVIRONMENTS = {
:staging => 'myapp-staging',
:production => 'myapp-production'
}
namespace :deploy do
ENVIRONMENTS.keys.each do |env|
desc "Deploy to #{env}"
task env do
@rrrodrigo
rrrodrigo / rails-app
Created September 23, 2010 13:51
Rails production.log rolling using the standard Linux logrotate mechanism
# put this into /etc/logrotate.d/app-production
# to have a Rails app running on unicorns rotating/rolling its logs monthly
# check with logrotate -f /etc/logrotate.d/app-production
/web/app/production/shared/log/*.log {
monthly
missingok
rotate 24
compress
delaycompress
@ryankanno
ryankanno / top10
Created April 17, 2012 05:02
Where has all the disk space gone?
du -x -k | sort -nr | head -<n>
@kraft001
kraft001 / solarized.bash
Created June 8, 2012 05:47
solarized Gnome Terminal + Tmux + Vim
# store all solarized files in one place
mkdir ~/.solarized
cd ~/.solarized
# http://www.webupd8.org/2011/04/solarized-must-have-color-paletter-for.html
git clone https://github.com/seebi/dircolors-solarized.git
eval `dircolors ~/.solarized/dircolors-solarized/dircolors.256dark`
ln -s ~/.solarized/dircolors-solarized/dircolors.256dark ~/.dir_colors
git clone https://github.com/sigurdga/gnome-terminal-colors-solarized.git
@jcf
jcf / README.md
Created June 13, 2012 09:22
No more No Peeping Toms
@ryanb
ryanb / issues_with_modules.md
Created November 29, 2012 22:38
Points on how modules can make code difficult to read.

My issues with Modules

In researching topics for RailsCasts I often read code in Rails and other gems. This is a great exercise to do. Not only will you pick up some coding tips, but it can help you better understand what makes code readable.

A common practice to organize code in gems is to divide it into modules. When this is done extensively I find it becomes very difficult to read. Before I explain further, a quick detour on instance_eval.

You can find instance_eval used in many DSLs: from routes to state machines. Here's an example from Thinking Sphinx.

class Article &lt; ActiveRecord::Base
@kytrinyx
kytrinyx / README.md
Created January 8, 2013 23:26
Take a snapshot of yourself on every commit.

Git Commit Snapshots

Snap a picture of yourself on every commit.

Probably Mac OS X only, I haven't looked into others.

$ brew install imagesnap
$ git config --global init.templatedir '~/.git_template'
$ chmod +x post-commit
@calebhearth
calebhearth / gist:4625280
Created January 24, 2013 17:15
Switch back and forth between directories and git branches, and even merge the last branch you were on, with hyphen!
~/
↪ cd code/project
project[master]/
↪ cd -
~/
↪ cd code/project
project[master]/
@jsteiner
jsteiner / .vimrc
Last active June 6, 2025 21:05
Example .vimrc projections, including projections for Active Model Serializers, Draper, and FactoryGirl
let g:rails_projections = {
\ "config/projections.json": {
\ "command": "projections"
\ },
\ "spec/features/*_spec.rb": {
\ "command": "feature",
\ "template": "require 'spec_helper'\n\nfeature '%h' do\n\nend",
\ }}
let g:rails_gem_projections = {
@stephaneliu
stephaneliu / gist:6735433
Last active December 24, 2015 03:09
Git pre-commit hook to alert committer that spec file contains focus
#!/usr/bin/env ruby
spec_hits = []
# Find the names of all the filenames in spec directory that have been (A)dded (C)opied or (M)odified
filenames = `git diff --cached --name-only --diff-filter=ACM`.split("\n")
filenames.each do |filename|
if filename.end_with? '_spec.rb'
results = `git diff --cached #{filename} | grep \^+\[\^+\] | grep focus`