Skip to content

Instantly share code, notes, and snippets.

Avatar

Ken Snyder kensnyder

View GitHub Profile
View Prototype NodeList Object
// Prototype object that works a lot like jQuery:
var NodeList = Class.create(Enumerable);
Object.extend(NodeList.prototype, {
initialize: function(selector) {
this.elements = $$(selector);
},
_each: function(iterator) {
this.elements.each(iterator);
return this;
}
View Prototype NodeList Object.js
// Prototype object that works a lot like jQuery:
var NodeList = Class.create(Enumerable);
Object.extend(NodeList.prototype, {
initialize: function(selector) {
this.elements = $$(selector);
},
_each: function(iterator) {
this.elements.each(iterator);
return this;
}
View gist:552566
// Truncate a string to the closest word
String.prototype.truncateToWord = function(len) {
return (len = Number(len)) >= 0 ?
this.match(new RegExp('^([\\s\\S]{0,' + len + '})(:?\\s|$)'))[1] :
undefined;
};
// Examples
// The "v" marks the first character out of bounds.
View install-nodejs-couchdb-on-ubuntu.sh
#! /bin/sh
# oops need to first install http://packages.debian.org/sid/i386/libmozjs2d/download
# then http://packages.debian.org/sid/i386/libmozjs-dev/download
# init
mkdir nodejs-couchdb
cd nodejs-couchdb
# nodejs
@kensnyder
kensnyder / gist:821334
Created Feb 10, 2011
Hide spammy posts on google groups
View gist:821334
var blacklist = {
title: [
/\bsexy?\b/i,
/online order/i,
/buy \w+ online/i,
/hot videos/i,
/earn money/i,
/prescription/i
],
body: [
@kensnyder
kensnyder / router.php
Created Apr 30, 2012
Create a rule for how a URL should be routed including the view name and the $_GET variables to set
View router.php
<?php
function getViewPath($routes, $requestUri) {
// extract the path part of our url (e.g. '/news/3/1')
// and trim slashes
$url = trim( parse_url($requestUri, PHP_URL_PATH), '/');
if ($url == '') {
return 'views/home.php';
}
// get the values sent in the url
@kensnyder
kensnyder / app--plugins--find--models--behaviors--better_find.php
Created May 25, 2012
CakePHP Behavior to add Find Plugins to your models
View app--plugins--find--models--behaviors--better_find.php
<?php
/**
* Add custom find types to your model (CakePHP 1.3)
*/
class BetterFindBehavior extends ModelBehavior {
/**
* Trick to register methods in this class as custom find types
*
@kensnyder
kensnyder / curry.php
Created Jun 12, 2012
Curry a function in PHP 5.3
View curry.php
<?php
class CurriedFunction {
public function __construct($callback/*[, $arg1][, $arg2][, $argN]*/) {
$this->args = func_get_args();
$this->callback = array_shift($this->args);
}
public function __invoke(/*[, $arg1][, $arg2][, $argN]*/) {
@kensnyder
kensnyder / ppr.php
Created Dec 6, 2012
Pretty print_r
View ppr.php
<?php
// DEFAULT OPTIONS
$GLOBALS['ppr_mode'] = 'screen'; // mode = screen | popup | email | log | off
$GLOBALS['ppr_char_limit'] = 200;//1024 * 500;
$GLOBALS['ppr_str_limit'] = 1024 * 4;
$GLOBALS['ppr_backtrace_str_limit'] = 100;
$GLOBALS['ppr_backtrace_array_limit'] = 6;
$GLOBALS['ppr_backtrace_arg_limit'] = 5;
$GLOBALS['ppr_mailto'] = @$_SERVER['SERVER_ADMIN'];
@kensnyder
kensnyder / myplugin.js
Created Dec 11, 2012
AMD Compatibility - Does this work?
View myplugin.js
function defineMyPlugin($) {
/*...*/
}
if (typeof define == 'function') {
define('MyPlugin', ['jquery'], defineMyPlugin);
}
else {
defineMyPlugin(jQuery);
}
You can’t perform that action at this time.