Skip to content

Instantly share code, notes, and snippets.

View pdswan's full-sized avatar

Peter Swan pdswan

View GitHub Profile
@pdswan
pdswan / patch_through_belongs_to.rb
Created November 12, 2010 15:39
swaps the foreign key and primary key to fix has_many and has_one through belongs_to in Rails 2.3.x
class ActiveRecord::Associations::ClassMethods::JoinDependency::JoinAssociation
# has_many and has_one through belongs_to are broken becuase the order of the primary key
# and foreign table key need to be reversed. this detects and fixes it.
def association_join_with_through_belongs_to_fix
join = association_join_without_through_belongs_to_fix
if [:has_many, :has_one].include?(reflection.macro) && reflection.options[:through] && source_reflection.macro == :belongs_to
connection = reflection.active_record.connection
parent_table_name = connection.quote_table_name(parent.aliased_table_name)
parent_key = connection.quote_column_name(parent.primary_key)
@pdswan
pdswan / .watchr
Created March 22, 2011 01:18
Basic Watchr Rules and Actions
def run_spec(file)
unless File.exist?(file)
puts "#{file} does not exist"
return
end
puts "Running #{file}"
system "bundle exec rspec #{file}"
puts
end
@pdswan
pdswan / headers.txt
Created January 4, 2012 03:24
Open Congress Error
*Response Headers*
Date Wed, 04 Jan 2012 03:14:33 GMT
Server Apache/2.2.3 (CentOS)
X-Powered-By Phusion Passenger (mod_rails/mod_rack) 3.0.2
X-Runtime 0.976903
Status 500
Vary Accept-Encoding,User-Agent
Content-Encoding gzip
Content-Length 1267
Content-Type text/html; charset=UTF-8
@pdswan
pdswan / gist:2475468
Created April 24, 2012 01:50
Deploy branch to heroku
git push heroku branch_name:master
@pdswan
pdswan / gist:2475472
Created April 24, 2012 01:51
Console for Sinatra
irb -r path_to_app.rb
@pdswan
pdswan / mailing_list_updater_unit_test.rb
Created June 1, 2012 18:08
Testing Classes for Active Record Callbacks
require 'test/unit'
require 'mocha'
# assumes MailingListUpdater is defined / exposed at the top level. this is not the case
# for the code in this gist.
class MailingListUpdaterTest < Test::Unit::TestCase
test "#update_mailing_list calls enqueue_for_mailing_list_update when a user is present" do
user = mock('User', :enqueue_for_mailing_list_update => true)
record = stub('Record')
@pdswan
pdswan / vagrant.rb
Created August 27, 2012 17:18
Vagrant capistrano config
require 'ostruct'
class VagrantSSHConfig < OpenStruct
def initialize
super parse_options(`vagrant ssh-config`)
end
private
def parse_options(option_string)
@pdswan
pdswan / Gemfile
Created October 20, 2012 18:56
Ruby event source without event machine
source "http://rubygems.org"
gem 'thin'
gem 'cramp'
gem 'rack'
@pdswan
pdswan / MRI_1.9.2-p247_backtrace
Created November 18, 2012 00:16
Rubinius vs MRI Socket Errors
IOError:
closed stream
/Users/pdswan/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/openssl/buffering.rb:174:in `sysread_nonblock'
/Users/pdswan/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/openssl/buffering.rb:174:in `read_nonblock'
/Users/pdswan/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/net/protocol.rb:141:in `rbuf_fill'
/Users/pdswan/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
/Users/pdswan/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
/Users/pdswan/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/net/http.rb:2770:in `read_chunked'
/Users/pdswan/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/net/http.rb:2750:in `read_body_0'
/Users/pdswan/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/net/http.rb:2710:in `read_body'
@pdswan
pdswan / not-working.js
Last active December 14, 2015 19:19
express cors
var express = require('express')
, cors = require('connect-xcors')({
headers: ['X-Requested-With', 'X-HTTP-Method-Override', 'Content-Type', 'Accept', 'Authorization']
})
var app = express()
// OPTIONS requests don't get handled because
// cors is hidden behind the routing middleware
// and '/' is only accessible via GET