Skip to content

Instantly share code, notes, and snippets.

View rahearn's full-sized avatar

Ryan Ahearn rahearn

  • 18F (work) + personal projects
  • Baltimore, MD
View GitHub Profile
@rahearn
rahearn / auto_strip_text_attributes.rb
Created March 20, 2012 19:17
Adding functionality to every model in a system
# This file is in lib
module AutoStripTextAttributes
extend ActiveSupport::Concern
included do
text_columns = columns.collect do |c|
c.name.to_sym if c.type == :string || c.type == :text
end.compact
@rahearn
rahearn / delegate_matcher.rb
Created March 27, 2012 21:21
RSpec matcher for "should delegate(:action).to :other_model"
# code source: https://github.com/thoughtbot/shoulda/issues/174
RSpec::Matchers.define :delegate do |delegated_method|
chain :to do |target_method|
@target_method = target_method
end
chain :as do |method_on_target|
@method_on_target = method_on_target
end
@rahearn
rahearn / test_connection.sh
Created September 13, 2012 13:59
Simple ping script to test connectivity. Used previously to build case against Comcast's terrible service even while not home.
#!/bin/sh
# Simple script for checking network availability every 5 minutes
while true; do
ping -c 1 www.google.com &> /dev/null
echo "$? `date`" | tee -a ~/output.txt
sleep 300
done
@rahearn
rahearn / find_in_jar.sh
Created September 13, 2012 14:08
Search through a directory of jar files for a class
#!/bin/sh
if [ $# -eq 0 ]; then
search_for="."
else
search_for=$1
fi
for file in `find . -type f -name "*.jar"`; do
echo "Scanning $file..."
@rahearn
rahearn / gist:3868151
Created October 10, 2012 20:18
Recovery steps for messed up rebase
Recovering from a botched rebase:
1) mess up a rebase
2) `git reflog` and find the last commit before the rebase started
3) `git reset --hard <<that commit>>`
4) rebase again and try not to mess up this time
@rahearn
rahearn / spec.rb
Created November 13, 2012 22:03
RSpec subject & let block load order example
context "outer" do
subject { puts "subject"; "subject" }
let(:expected) { puts "expected"; "subject" }
let!(:bang) { puts "bang"; "bang" }
context "inner" do
let!(:inner) { puts "inner"; "inner" }
it "should print bang, inner, test, subject, expected" do
puts "test"
@rahearn
rahearn / activeadmin-cancan.rb
Last active December 12, 2015 06:58
ActiveAdmin & CanCan integration. Works with `check_authorization` in ApplicationController
# blog post:
# Before using this initializer, you must set up Cancan. First, add the gem to your Gemfile:
#
# gem 'cancan'
#
# Next, generate and edit an Ability class:
#
# rails generate cancan:ability
#
@rahearn
rahearn / Vagrantfile
Last active December 30, 2015 03:28
wordpress dev Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "wordpress"
config.vm.box_url = "https://dl.dropboxusercontent.com/s/nkzyze6gb7mvam9/wordpress.box"
@rahearn
rahearn / Gemfile
Created March 26, 2014 14:43
Skynet deploy details
source "https://rubygems.org"
gem 'skynet-deploy', '~> 1.3'
# jekyll deps
gem 'kramdown', '~> 1.3'
gem 'RedCloth', '~> 4.2'
gem 'gsl', '~> 1.14'
@rahearn
rahearn / keybase.md
Created April 18, 2014 18:40
Keybase.io profile proof

Keybase proof

I hereby claim:

  • I am rahearn on github.
  • I am rcahearn (https://keybase.io/rcahearn) on keybase.
  • I have a public key whose fingerprint is 534E F500 3A4E F71E 1F71 AA8C 1BDA 847E 8098 0ABB

To claim this, I am signing this object: