Skip to content

Instantly share code, notes, and snippets.

View jasonrudolph's full-sized avatar

Jason Rudolph jasonrudolph

View GitHub Profile
namespace :db do
namespace :data do
desc "Load data into current environment"
task :load => [:environment, 'db:drop', 'db:create'] do
db = ActiveRecord::Base.configurations[RAILS_ENV]
%x( mysql -u #{db['username']} --password=#{db['password']} #{db['database']} < "#{RAILS_ROOT}/db/dump/data.sql" )
end
desc "Dump current database schema and data to file"
task :dump => :environment do
# Adapted from http://gist.github.com/31934
# http://henrik.nyh.se/2008/12/git-dirty-prompt
# http://www.simplisticcomplexity.com/2008/03/13/show-your-git-branch-name-in-your-prompt/
RED="\[\033[0;31m\]"
ORANGE="\[\033[0;33m\]"
YELLOW="\[\033[0;33m\]"
GREEN="\[\033[0;32m\]"
BLUE="\[\033[0;34m\]"
LIGHT_RED="\[\033[1;31m\]"
LIGHT_GREEN="\[\033[1;32m\]"
# Grab a password out of the 1Password keychain...finding it by "name"
def password_for_hostname(name)
password_info = `security 2>&1 >/dev/null find-generic-password -gs passwords.Password:#{name} 1Password.keychain`
password = password_info.match(/\"\:\"(.+)\"\}\"/)[1] rescue nil
end
-- Separate your work email from your home email in Mail.app.
--
-- Sure, you can use separate mailboxes or smart mailboxes to separate
-- your mail, but sometimes you don’t even want to know that you have
-- new “home” mail while you’re at work (or vice versa). Sometimes you
-- want to work exclusively in one context, free from the distractions
-- of the other context: you don’t want to hear that "new mail" chime
-- for mail that belongs to other (non-active) contexts, and you don’t
-- want to see the "unread" count for mail in other (non-active)
-- contexts. Cue Jonathan Wise's "Mail Account Chooser" script.
after "deploy:restart", "deploy:tag_last_deploy"
namespace :deploy do
# see http://codeintensity.blogspot.com/2008/06/changelogs-and-deployment-notification.html
task :tag_last_deploy do
set :tag_name, "deployed_to_#{rails_env}_#{timestamp_string_without_seconds}"
`git tag -a -m "Tagging deploy to #{rails_env} at #{timestamp_string_without_seconds}" #{tag_name} #{branch}`
`git push --tags`
puts "Tagged release with #{tag_name}."
end
# Put this in your .irbrc, and then type
# "some_object.my_methods" in an IRB session
# for less noisy exploration of what objects
# can do.
class Object
def my_methods
base_object = case self
when Class then Class.new
when Module then Module.new
#vim: ruby
#
# This script will import all your Mephisto comments into Disqus (http:/disqus.com)
# parts of it came from http://www.locomotivation.com/blog/2008/12/01/disqus-sinatra-importer.html
# but instead of a blog-engine independent sinatra app we needed a mephisto-specific script that
# will just do the job :)
unless defined?(RAILS_ROOT)
puts "This is a Rails 'runner' script. Please run './script/runner path/to/disqus_import' inside your Mephisto directory"
exit

The Lean Startup - Notes, Quotes, and Choice Snippets

Characteristics of a lean startup:

  1. Uses "platforms enabled by open source and free software."

  2. Agile development

# git
alias gl='git pull'
alias gp='git push'
alias gd='git diff | mate'
alias gdh='git diff HEAD | mate'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gcap='git commit -v -a && git push'
alias gb='git branch'
alias gba='git branch -a'
@jasonrudolph
jasonrudolph / how-to-reproduce.sh
Created May 5, 2011 00:16
Rake tasks fail to log when running in production mode
# generate a fresh app
rails -v
rails new whizbang
cd whizbang
# show empty log file
cat log/production.log
# script/runner successfully writes to the log file
./script/rails runner 'Rails.logger.error("Hello from script/runner")' -e production