Skip to content

Instantly share code, notes, and snippets.

@shuber
shuber / svn.rake
Created September 26, 2008 20:54
Reads patterns from the .svnignore file in RAILS_ROOT and ignores them
namespace :svn do
desc 'Reads patterns from the .svnignore file in RAILS_ROOT and ignores them'
task :ignore => :environment do
# Set the svnignore filename and define the absolute path to that file
#
svnignore_path = File.join(RAILS_ROOT, '.svnignore')
# Ensure the svnignore file exists
#
@shuber
shuber / date_helper.js
Created February 5, 2009 18:36 — forked from rails/gist:58761
fuzzy timestamps, time ago in words
var DateHelper = {
// Takes the format of "Jan 15, 2007 15:45:00 GMT" and converts it to a relative time
// Ruby strftime: %b %d, %Y %H:%M:%S GMT
time_ago_in_words_with_parsing: function(from) {
var date = new Date;
date.setTime(Date.parse(from));
return this.time_ago_in_words(date);
},
time_ago_in_words: function(from) {
@shuber
shuber / proc.php
Created March 24, 2009 21:50
phuby proc object pseudo-code
<?php
class Proc extends Object {
public $block;
public $parameters;
function initialize($block) {
$parameters = func_get_args();
$this->block = array_pop($parameters);
@shuber
shuber / custom_domain.rb
Created August 12, 2009 02:22 — forked from speedmax/customdomain.rb
DNS lookup for dynamic domains in rack applications
require File.dirname(__FILE__) + '/../../vendor/gems/net-dns-0.4/lib/net/dns/resolver'
# Custom Domain
# A Rack middleware to to resolve the custom domain to original subdomain
# for your multi telent application.
#
# It's all transperant to your application, it performs cname lookup and
# overwrite HTTP_HOST if needed
#
# www.example.org => example.myapp.com
@shuber
shuber / configure_mysql_5-3-0.sh
Created August 17, 2009 02:53
configuring mysql with php 5.3.0
./configure \
--prefix=/usr/local/php5.3 \
--mandir=/usr/local/share/man \
--infodir=/usr/local/share/info \
--with-config-file-path=/usr/local/etc \
--enable-calendar \
--with-iconv=/opt/local \
--enable-exif \
--enable-ftp \
--enable-wddx \
@shuber
shuber / restrict.rb
Created August 28, 2009 21:19 — forked from jondahl/has_many :dependent => :restrict
don't allow a record with has_many dependencies to be destroyed e.g. has_many dependent: :restrict
when :restrict do
method_name = "has_many_dependent_restrict_for_#{reflection.name}".to_sym
define_method(method_name) do
unless send(reflection.name).empty?
# change to named error...
raise ActiveRecord::StatementInvalid, "can't delete record because of dependent #{reflection.name}"
end
end
before_destroy method_name
end
@shuber
shuber / sync.rb
Created October 3, 2009 21:01 — forked from speedmax/sync.rake
sync files with a rake task
# app:sync
# Local and production synchronization
# - require yaml_db plugin
namespace :app
namespace :sync do
task :all => [:files, :db]
task :files do
`rsync -azv user@host:'/apps/myawesomeapp/shared/files/' #{Rails.root + 'files'}`
@shuber
shuber / connection_manager.php
Created January 15, 2010 19:42
a simple php database connection manager
<?php
abstract class ConnectionManager {
static $configurations = array();
static $connections = array();
static function &connection($name) {
if (!isset(self::$connections[$name])) self::establish_connection($name);
return self::$connections[$name];
@shuber
shuber / attr_encrypted_with_ar_2.1.2.rb
Created April 2, 2010 18:13
Testing attr_encrypted with ActiveRecord 2.1.2
require 'rubygems'
require 'test/unit'
gem 'activerecord', '2.1.2'
require 'active_record'
require 'attr_encrypted'
ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ':memory:'
@shuber
shuber / load_eval.rb
Created September 28, 2011 04:36
LoadEval proof of concept
module LoadEval
class << self
def contexts
@contexts ||= []
end
def load_within_context(object, file)
contexts << [object, file]
load('load_eval_proxy.rb', true)
ensure