Skip to content

Instantly share code, notes, and snippets.

@thinkt4nk
thinkt4nk / EventEmitter.js
Created October 21, 2011 15:16
Event Emitter With jQuery 1.7's $.Callbacks()
/**
* EventEmitter with jQuery 1.7's $.Callbacks().
*/
function EventEmitter() {
this.topics = {};
}
/**
* Listen on the given `topic` event with `fn`.
@thinkt4nk
thinkt4nk / jquery.utils.js
Created September 13, 2011 15:48
jQuery Utils
(function($) {
var serialize = function(type,form) {
var data = {};
var first_run_ignore_types = ['submit','checkbox'];
form.find('input, select').each(function() {
var input_type = $(this).attr('type');
var input_name = $(this).attr('name');
if (first_run_ignore_types.indexOf(input_type) === -1) {
// process and push to data
@thinkt4nk
thinkt4nk / DbMigrateCommand.php
Created September 10, 2011 06:27
DB Migrations for Yii
<?php
/*
* Manages migrations for Yii database
*
* Author: Ryan Bales <thinkt4nk@gmail.com>, 2011
*/
class DbMigrateCommand extends CConsoleCommand
{
const MIGRATION_TABLE = 'Migration';
@thinkt4nk
thinkt4nk / DirectoryEnumerator.php
Created August 17, 2011 15:53
Directory Enumerator
<?php
/*
* Directory enumeration and presentation for jQuery TreeView Widget
* Author: Ryan Bales, 2011
*/
class DirectoryEnumerator
{
private $enumeration_list = array();
private $directory;
private $public_directory;
@thinkt4nk
thinkt4nk / EIterativeActiveRecord.php
Created August 10, 2011 18:37
POC for a iterative model retrieval method for Yii
<?php
class EIterableActiveRecord extends CActiveRecord
{
public function getIter($buffer_size)
{
return new ActiveRecordIterator($this,$buffer_size);
}
}
class ActiveRecordIterator implements Iterator
@thinkt4nk
thinkt4nk / iter_and_map_example.py
Created August 9, 2011 22:04
iter and map example
class myClass(object):
def __init__(self):
self.elems = ['meh','meep','moop','mop']
self.index = None
def __iter__(self):
return self
def next(self):
if self.index is None:
self.index = 0
return self.elems[self.index]
@thinkt4nk
thinkt4nk / unsvn.php
Created August 3, 2011 14:48
Remove svn traces from directory structure
<?php
/**
* Script to recursively remove all traces of svn from a directory tree
* Author: Ryan Bales, Creative Anvil 2011
*/
ini_set('memory_limit','512M');
function usage()
{
ob_start(); ?>
@thinkt4nk
thinkt4nk / reverseGeocode.js
Created August 1, 2011 20:55
Reverse Geocode using google.maps
var inArray = function(needle,haystack) {
for(i=0;i<haystack.length;i++) {
if( needle === haystack[i] ) {
return true;
}
}
}
var reverseGeocode = function(options)
{
if( typeof(options.lat) !== 'undefined' && typeof(options.lng) !== 'undefined' && typeof(options.onReverseGeocode) === 'function' )
@thinkt4nk
thinkt4nk / addNumberSuffix.js
Created July 28, 2011 18:50
Given a day of the month, return a stringified representation of it
Array.prototype.contains = function(elem)
{
return (this.indexOf(elem) === -1) ? false : true;
}
function addNumberSuffix(n)
{
var suffix = '';
n = parseInt(n);
var number_last_digit = parseInt((''+n).substr(-1,1));
if( [4,5,6,7,8,9,0].contains(number_last_digit) || (n > 10 && n < 14) )
@thinkt4nk
thinkt4nk / iframe_file_uploader.js
Created July 12, 2011 22:28
File uploader with hidden IFrame
/* FILE UPLOADER */
var CLASS_UPLOADING = 'file-uploading';
var CLASS_UPLOADING_COMPLETE = 'file-uploading-complete';
var CLASS_LOADER_WIDGET = 'file-upload-loader';
var CLASS_LOADER_LABEL = 'file-upload-loader-label';
var CLASS_LOADER_CONTAINER = 'file-upload-container';
var FILE_UPLOAD_URL = '/path/to/handler';
var updateFileContainerState = function(file_input)
{
// hide input