Skip to content

Instantly share code, notes, and snippets.

Rob Hurring robhurring

Block or report user

Report or block robhurring

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
robhurring / base_form.rb
Last active Aug 29, 2015
Rails Form Models
View base_form.rb
# app/forms/base_form.rb
class BaseForm
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
robhurring / db.rake
Last active Aug 29, 2015
Rake task to sync heroku database locally
View db.rake
namespace :db do
desc 'sync with prod database'
task :sync, :backup_id do |t, args|
dump_file = Rails.root.join('tmp', 'latest.dump')
db_configs = YAML.load_file(Rails.root.join('config', 'database.yml'))
db_config = db_configs[Rails.env]
commands = [
"heroku pgbackups:capture --expire",
"curl -o #{dump_file} \`heroku pgbackups:url #{args[:backup_id]}\`",
robhurring / git-cleanup
Created Jun 24, 2014
Cleans up branches merged into "dev" from your local repo (except current branch, dev, and master)
View git-cleanup
#!/usr/bin/env sh
# IMPORTANT: exclude the current branch (*), master and dev branch. Add any other patterns here
# and do a --dry-run if you're unsure
to_prune=$(git branch --merged dev | grep -v '\*\|master\|dev')
function show_help {
echo Usage: $(basename $0)
echo " -n [--dry-run] Print branches that would be removed"
robhurring / app.js
Last active Aug 29, 2015
Rails status symbols in javascript (for angular)
View app.js
/* global angular */
(function(module) {
'use strict';['$rootScope', '$state', 'Rails',
function($rootScope, $state, Rails) {
$rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {
switch(error.status) {
// or Rails.status.not_found.code (if using the version with descriptions)
case Rails.status.not_found.:
View .zshrc
# set the finddir lookup PATH
export DEFAULT_SEARCH_PATHS="~/Sites/apps:~/Sites/gems:~/Projects"
# use `finddir` to fuzzy lookup directories
function cds {
local search=$1;
local found=$(noglob finddir $search)
if [ $? -eq 0 ]; then
cd $found
robhurring / git-fuzzy-checkout
Created Oct 8, 2014
Fuzzy git checkout. With super awesome branch selection!
View git-fuzzy-checkout
#!/usr/bin/env ruby
require 'optparse'
module CLI
black: "\e[30;1m",
red: "\e[31m",
green: "\e[32m",
blue: "\e[34m",
white: "\e[37m",
View battery-status.rb
#!/usr/bin/env ruby
require 'optparse'
class Battery
def self.status
_, percent, status, remaining, _ = %x{pmset -g batt|grep InternalBattery}.split(/\t|;/).map(&:strip)
percent.gsub!(/%/, '')
remaining.gsub!(/[\(\)]/, '')
robhurring / usage.html
Created Oct 9, 2014
Custom form validators with angular
View usage.html
<form name="form">
<small class="error" ng-show="form.password.$invalid">
set -e # works without this
set -x # debug
source "$HOME/.rvm/scripts/rvm" #so 'cd' will change gemset when dotfiles present
rm -rf ~/tmp/dir_with_gemfile
mkdir -p ~/tmp/dir_with_gemfile
robhurring / application.html.erb
Last active Aug 29, 2015
Capybara + Angular.js wait_for_ajax
View application.html.erb
<!DOCTYPE html>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<%= stylesheet_link_tag "application", media: "all" %>
<%= csrf_meta_tags %>
<body class="container">
You can’t perform that action at this time.