Skip to content

Instantly share code, notes, and snippets.

View cgallagher's full-sized avatar

Chris Gallagher cgallagher

View GitHub Profile
@cgallagher
cgallagher / nukehomebrew.sh
Created June 25, 2012 11:06
Completely kill homebrew
cd `brew --prefix`
rm -rf Cellar
brew prune
rm `git ls-files`
rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions
rm -rf .git
rm -rf ~/Library/Caches/Homebrew
@cgallagher
cgallagher / restrict_addresses.rb
Created July 2, 2012 12:08
Rack Middleware to block IP addresses to active_admin
class RestrictAddresses
def initialize(app)
@app = app
end
def call(env)
request = Rack::Request.new(env)
incoming_ip_address = request.env['REMOTE_ADDR']
allowed_range = ['127.0.0.1']
@cgallagher
cgallagher / 34B489.rb
Created July 3, 2012 15:52
Script for pushing out loads of actions in order to see how your Open Graph actions scale out.
require 'rubygems'
require "net/http"
require "net/https"
require "uri"
access_token = "" #App Access Token (app_id|app_secret)
user_id = "" #FBID of an app user who has granted perms to publish actions within your app
og_object_url = "http://dby-staging.herokuapp.com/og/84" #url to the OG data to be pushed along with your user
@cgallagher
cgallagher / is_mobile.js
Created July 9, 2012 15:44
Check if user is mobile with JavaScript.
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i) ? true : false;
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i) ? true : false;
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
},
@cgallagher
cgallagher / entry.rb
Created November 1, 2012 17:35
Validating Paperclip
# check the type of file and tell them to F off if its wrong.
validates_attachment :image, :presence => true, :size => { :in => 0..10.kilobytes }
@cgallagher
cgallagher / addtopage.js
Created November 4, 2012 14:24
Bookmarklet for adding to fan page.
%20var%20template%20=%20'http://www.facebook.com/dialog/pagetab?app_id=%7Bid%7D&next=%7Bnext%7D',%20id%20=%20prompt('App%20ID'),next%20=%20prompt('App%20URL',%20'http://example.heroku.com');%20if(id%20&&%20next)%7B%20url%20=%20template.replace('%7Bid%7D',%20id).replace('%7Bnext%7D',%20next);window.location%20=%20url;%7D
@cgallagher
cgallagher / geo.rb
Created November 8, 2012 10:44
Geo Restriction Logic using geocode gem
def check_user_location
# need to intro a whitelist for IP addresses
user_ip = request.ip
unless user_ip.nil?
logger.info("User IP Address is: #{user_ip}")
user_country = request.location.country
logger.info("User Country is: #{user_country}")
# if in production mode and the user country doesnt match one on the whitelist
# then throw them out to a restricted page.
redirect_to restricted_path() unless knock_knock(user_ip, user_country)
@cgallagher
cgallagher / deploy.rake
Created November 16, 2012 09:34 — forked from ndbroadbent/deploy.rake
Rake task for precompiling assets locally before deploying to Heroku
require 'fileutils'
# Warning: The following deploy task will completely overwrite whatever is currently deployed to Heroku.
# The deploy branch is rebased onto master, so the push needs to be forced.
desc "Deploy app to Heroku after precompiling assets"
task :deploy do
deploy_branch = 'heroku'
remote = 'heroku'
deploy_repo_dir = "tmp/heroku_deploy"
@cgallagher
cgallagher / blaa.rb
Created December 17, 2012 17:01
check it all
def redirect_to_canvas_if_no_signed_request_and_not_mobile
if !mobile_device? and !request.post?()
extended_url = ""
if params
extended_url = "#{request.fullpath}"
end
redirect_to "#{Settings.facebook.canvas_url}#{extended_url}"
end
@cgallagher
cgallagher / instagrammer.rb
Created March 13, 2013 06:49
Include this in your services directory of your Rails application in order to pull in and parse a hashtag RSS feed from Instagram.
class Instagrammer
cattr_accessor :config, :url
class << self
def perform(url, options = {})
defaults = {:expires_in => 15.minutes }
self.config = defaults.merge(options)
self.url = url