Skip to content

Instantly share code, notes, and snippets.

View benpickles's full-sized avatar
🏎️

Ben Pickles benpickles

🏎️
View GitHub Profile
@benpickles
benpickles / minify
Created January 4, 2011 21:17
Swiftly concat and minify JavaScript files from the command line
#!/usr/bin/env ruby
dry_run = ARGV.delete('--dry-run')
force = ARGV.delete('--force')
if ARGV.empty?
puts <<-USAGE
minify, swiftly concat and minify JavaScript files from the command line
Pass a single argument to create a .min.js version:
@benpickles
benpickles / ding.sh
Created November 25, 2010 14:33
Make a "ding" sound on your Mac!
# .___.__
# __| _/|__| ____ ____
# / __ | | |/ \ / ___\
# / /_/ | | | | \/ /_/ >
# \____ | |__|___| /\___ /
# \/ \//_____/
#
# Make a "ding" sound on your Mac! Useful for notifying you when a command
# line script has finished.
#
Post('post', {
validations: {
presence: ['title', 'body'],
length: {
title: { min: 20 },
body: { max: 2000 }
}
}
})
var localStoragePlusRest = function() {
var rest_args = Array.prototype.slice.call(arguments)
return function(klass) {
var local = Model.LocalStorage(klass)
var rest = Model.RestPersistence.apply(
Model.RestPersistence, rest_args)(klass)
return {
create: function(model, callback) {
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script src="http://github.com/documentcloud/underscore/raw/master/underscore-min.js"></script>
<script src="http://github.com/benpickles/js-model/raw/master/dist/js-model-0.8.1.min.js"></script>
<script>
var Post = Model('post', {}, {
validate: function() {
if (this.attr("title") != "Bar") {
this.errors.add("title", "should be Bar")
@benpickles
benpickles / active_model_style_errors_to_json.rb
Created March 31, 2010 16:18
ActiveModel-style (Rails 3) `errors.to_json` for your Rails 2 app
module ActiveRecord
class Errors
def to_json
inject({}) { |hash, error|
attribute, message = error
hash[attribute] ||= []
hash[attribute] << message
hash
}.to_json
@benpickles
benpickles / db
Created December 22, 2009 18:55
Framework-aware console/server/database scripts.
#!/usr/bin/env ruby
require 'pathname'
require 'yaml'
conf = Pathname.new(Dir.pwd).join('config', 'database.yml')
if conf.exist?
env = ARGV.first || ENV['RAILS_ENV'] || 'development'
yaml = YAML.load(conf.read)
# Brutal hack to make all string/text columns alert("hack") if they're not
# being properly escaped.
models = Dir['app/models/*.rb'].map { |path|
name = File.basename(path, '.*')
name.camelize.constantize
}.reject { |klass|
klass.superclass != ActiveRecord::Base
}
require 'rubygems'
require 'httparty'
class GoogleClosure
include HTTParty
base_uri 'closure-compiler.appspot.com'
def self.compile(path)
contents = File.read(path)
require 'benchmark'
Dir.mkdir('results') unless File.exists?('results')
$stdout = File.new("results/#{Process.pid}.txt", 'w')
puts "Start: #{Time.now.strftime('%H:%M:%S')}"
array = (1..1000000).map { rand }; nil
Benchmark.bmbm do |x|