Skip to content

Instantly share code, notes, and snippets.

Avatar

Caleb Woods calebwoods

View GitHub Profile
@calebwoods
calebwoods / Gemfile
Last active Feb 6, 2017
Simple standalone ActiveRecord setup. Usage: [pry|irb] -r ./post.rb
View Gemfile
source 'https://rubygems.org'
gem 'activerecord', '>= 4.2.0'
gem 'sqlite4'
@calebwoods
calebwoods / resize.rb
Last active Oct 24, 2017
Script for resizing a directory of images using Ruby. Note requires the RMagick gem to be installed and assumes Rbenv is used for managing the Ruby Version. Blog post: http://www.calebwoods.com/2015/02/01/batch-resizing-images-ruby/
View resize.rb
#!/usr/bin/ruby
require 'RMagick'
require 'pathname'
@directory = Pathname(File.expand_path(ARGV[0]))
@size = ARGV.fetch(1) { 1025 }
def resize_image(file)
img = Magick::Image.read(file).first
@calebwoods
calebwoods / braintree_test_app.rb
Created Dec 5, 2014
Used to access external services in Rails tests
View braintree_test_app.rb
# create in config/initializers
class BraintreeTestApp
def initialize(app)
@app = app
end
def call(env)
@env = env
config = Braintree::Configuration.instantiate
View keybase.md

Keybase proof

I hereby claim:

  • I am calebwoods on github.
  • I am calebwoods (https://keybase.io/calebwoods) on keybase.
  • I have a public key whose fingerprint is 391E 05D0 70B1 0E2B A2EA 9A34 463D 65F1 B1EF DEE1

To claim this, I am signing this object:

@calebwoods
calebwoods / nginx.conf
Created May 10, 2014
Sample Nginx config for deployment of Angular.js app
View nginx.conf
server { listen 80;
server_name example.com;
access_log /var/log/example.com/nginx.access.log;
error_log /var/log/example.com/nginx.error.log;
root /var/www/apps/example.com/public;
charset utf-8;
location / {
rewrite ^ https://$host$request_uri? permanent;
}
@calebwoods
calebwoods / bookmarklet.js
Last active Jan 3, 2016
Bookmarklet to fill custom merge message for Github Pull Request. Format used by @RoleModel
View bookmarklet.js
javascript:(function () {
var mergeMessage = $('.merge-commit-message');
if (mergeMessage.length > 0) {
prNum = location.pathname.split('/').slice(-1)[0];
var prTitle = $('.discussion-topic-title').text();
mergeMessage.val('' + prTitle + ' [KB #NUMBER] (GH #' + prNum + ')');
}
})();
@calebwoods
calebwoods / pg_hba.conf
Created Nov 21, 2013
Ansible Postgres Setup
View pg_hba.conf
# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
# documentation for a complete description of this file. A short
# synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
@calebwoods
calebwoods / api_context.rb
Created May 20, 2013
Testing helper methods to use with Rack::Deflater
View api_context.rb
def api_post_gziped(url, params={}, api_token = 'test_token')
gzipped_data = ActiveSupport::Gzip.compress(params.to_json)
post(url, gzipped_data, headers.merge('HTTP_AUTHORIZATION' => basic_auth_for(api_token),
"HTTP_ACCEPT_ENCODING" => "gzip",
'CONTENT_TYPE' => 'gzip/json'))
end
def decompressed_json_body
Yajl::Parser.parse(ActiveSupport::Gzip.decompress(response.body))
end
@calebwoods
calebwoods / index.html
Created Nov 27, 2012
Draw Polygons on Google Maps
View index.html
<html>
<head>
<title>Draw Sample Polygons</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="https://raw.github.com/HPNeo/gmaps/master/gmaps.js"></script>
</head>
<body>
<div id="map" style="width: 600px; height: 600px"></div>
@calebwoods
calebwoods / utm_zone_partial.js
Created Nov 26, 2012
Test of acreage calculation for polygons that span more than 1 UTM zone.
View utm_zone_partial.js
// Zone spanning polygon
{
"type": "MultiPolygon",
"coordinates": [
[
[
[-90.00575, 35.99485],
[-89.99339, 35.99485],
[-89.99339, 36.00481],
[-90.00575, 36.00481],