Skip to content

Instantly share code, notes, and snippets.

View kjohnston's full-sized avatar

Kenny Johnston kjohnston

  • Laguna Niguel, CA
View GitHub Profile
@maxim
maxim / rails_load_path_tips.md
Last active January 9, 2025 00:59
How to use rails load paths, app, and lib directories.

In Rails 3

NOTE: This post now lives (and kept up to date) on my blog: http://hakunin.com/rails3-load-paths

If you add a dir directly under app/

Do nothing. All files in this dir are eager loaded in production and lazy loaded in development by default.

If you add a dir under app/something/

@xaviershay
xaviershay / befunge_compiler_prototype.rb
Created July 17, 2013 03:59
A very quick sketch of a befunge compiler.
class ValueObject < Struct
def self.[](*args)
if args.length > 0
new(*args)
else
new(:null)
end
end
def [](*args)
@adamwiggins
adamwiggins / adams-heroku-values.md
Last active November 10, 2025 18:54
My Heroku values

Make it real

Ideas are cheap. Make a prototype, sketch a CLI session, draw a wireframe. Discuss around concrete examples, not hand-waving abstractions. Don't say you did something, provide a URL that proves it.

Ship it

Nothing is real until it's being used by a real user. This doesn't mean you make a prototype in the morning and blog about it in the evening. It means you find one person you believe your product will help and try to get them to use it.

Do it with style

@smoil
smoil / account.rb
Last active March 2, 2020 00:32
Ajax select/multi select in Rails using Select2
class Account < ActiveRecord::Base
def self.search(name = nil)
# search logic
end
end
@elskwid
elskwid / event.rb
Created February 23, 2013 20:35
Enumerator fun
require "active_support/all"
class Event
STATES = %w(active archived)
def self.types(&block)
return to_enum(__callee__) unless block
types = {
@supernullset
supernullset / teams.thor
Created February 17, 2013 05:33
Quick task to add org members to a specific repo
require 'github_api'
require 'io/console'
class Teams < Thor
include Thor::Actions
desc "ls", "list users in an organization"
def ls(org)
connenction = connect
members = connenction.orgs.members.list org
#!/usr/bin/env sh
if ! which md5sum > /dev/null; then
echo Install md5sum
exit 1
fi
if ! which curl > /dev/null; then
echo Install curl
exit 1
@supernullset
supernullset / DB_cleaner.rb
Created January 21, 2013 21:00
Multi-Database DatabaseCleaner setup
RSpec.configure do |config|
config.before :suite do
# set up a global cleaning strategy
DatabaseCleaner.clean_with(:truncation)
# AR specific strategy
DatabaseCleaner[:active_record].strategy = :truncation
# Explicitly tell DatabaseCleaner what connection is AR
DatabaseCleaner[:active_record, connection: :pediafed_test]
@mcansky
mcansky / gist:3434417
Created August 23, 2012 08:59
signing an aws s3 url
# encoding : utf-8
require 'openssl'
require 'digest/sha1'
require 'base64'
module Aws
extend self
def signed_url(path, expire_date)
digest = OpenSSL::Digest::Digest.new('sha1')
can_string = "GET\n\n\n#{expire_date}\n/#{S3_BUCKET}/#{path}"
@piscisaureus
piscisaureus / pr.md
Created August 13, 2012 16:12
Checkout github pull requests locally

Locate the section for your github remote in the .git/config file. It looks like this:

[remote "origin"]
	fetch = +refs/heads/*:refs/remotes/origin/*
	url = [email protected]:joyent/node.git

Now add the line fetch = +refs/pull/*/head:refs/remotes/origin/pr/* to this section. Obviously, change the github url to match your project's URL. It ends up looking like this: