Skip to content

Instantly share code, notes, and snippets.

@ianpgall
ianpgall / element-animate.js
Last active August 29, 2015 14:05
JavaScript function that animates an element's style or property
function animate(element, options) {
"use strict";
/*
* Options:
* style - a numerical style property to animate
* property - a numerical property to animate
* endValue - the value to animate to
* unit - (optional) the value's units; defaults to ""
* duration - (optional) how long, in milliseconds, for the animation to complete; defaults to 400
@ianpgall
ianpgall / waiter.js
Created March 12, 2014 21:54
JavaScript function (constructor) that emulates a simple version of promises
var Waiter = (function () {
"use strict";
var F, func, handleDone, slice;
F = function () { return undefined; };
func = function () {
var me, resolveArgs, done, waiters;
@ianpgall
ianpgall / postgres-delete-triggers.sql
Created March 11, 2014 19:07
PostgreSQL function that deletes all triggers for all tables
CREATE OR REPLACE FUNCTION strip_all_triggers() RETURNS text AS $$ DECLARE
triggNameRecord RECORD;
triggTableRecord RECORD;
BEGIN
FOR triggNameRecord IN select distinct(trigger_name) from information_schema.triggers where trigger_schema = 'public' LOOP
FOR triggTableRecord IN SELECT distinct(event_object_table) from information_schema.triggers where trigger_name = triggNameRecord.trigger_name LOOP
RAISE NOTICE 'Dropping trigger: % on table: %', triggNameRecord.trigger_name, triggTableRecord.event_object_table;
EXECUTE 'DROP TRIGGER ' || triggNameRecord.trigger_name || ' ON ' || triggTableRecord.event_object_table || ';';
END LOOP;
END LOOP;
@ianpgall
ianpgall / postgres-view-functions.sql
Created March 11, 2014 19:05
PostgreSQL view that lists all functions and their source code
create or replace view showfunctions as
select
l.lanname,
t.typname || ' = ' || n.nspname || '.' ||
p.proname || '(' || pg_catalog.oidvectortypes(p.proargtypes) || ')'
as function_definition,
(select case when lanname <> 'c'
then '\n\n'||prosrc ||'\n\n'
else '\n'||prosrc ||'.so\n\n'
end) as source
@ianpgall
ianpgall / window-open.js
Created March 11, 2014 17:49
JavaScript function that can center a window opened with window.open
var openWindow = function (url, name, width, height, options) {
"use strict";
var finalOptions, opts, winTop, winLeft, finalTop, finalLeft, winHeight, winWidth;
finalOptions = [];
if (!options) {
options = "";
}
@ianpgall
ianpgall / number-odd.js
Created March 11, 2014 17:32
JavaScript function that determines whether a number is odd
function isOdd(num) {
return !!(num & 1);
}
@ianpgall
ianpgall / subscriber.js
Last active December 21, 2015 05:18
JavaScript constructor library to listen for and trigger events
var Subscriber = (function () {
"use strict";
var F, allSubscribers, SubClass, PublicClass, handleOn, slice, ret;
F = function () { return undefined; };
allSubscribers = {};
SubClass = function (opts) {
var me, events;
@ianpgall
ianpgall / element-classes.js
Last active December 21, 2015 05:18
JavaScript function to manage CSS classes (detects native browser support)
var Classes = (function () {
"use strict";
var E, trim, containsClass, addClass, removeClass, toggleClass;
E = document.createElement("div");
if (E.classList && !E.hasOwnProperty("classList")) {
containsClass = function (el, cls) {
return el.classList.contains(cls);
@ianpgall
ianpgall / array-slice.js
Last active December 21, 2015 04:09
JavaScript function to slice an Array-like object (same arguments as native Array.slice)
var Slice = (function () {
"use strict";
var func;
func = function (arr, start, howMany) {
var stop, newArr, i, j, cur;
start = +start || 0;
howMany = +howMany || Infinity;
@ianpgall
ianpgall / object-each.js
Last active December 20, 2015 21:59
JavaScript function that iterates over an object (Object or Array)
var Each = (function () {
"use strict";
var O, toString, is, ret;
O = {};
toString = O.toString;
is = function (o, t) {
return (toString.call(o) === "[object " + t + "]");
};