Skip to content

Instantly share code, notes, and snippets.

@colelawrence
colelawrence / jquery.transferClass.js
Created June 5, 2014 18:58
add class to an element, remove from element's siblings
$.fn.transferClass = function (className) {
this.siblings().removeClass(className)
this.addClass(className)
return this
}
@colelawrence
colelawrence / abbreviate.js
Created June 24, 2014 15:34
Abbreviate multiple strings to two characters
(function () {
var abbrs = []
var abbr = function (full) {
full = full
.replace(/^[^\w\d]+/, "")
.replace(/\s+/g, "_")
.replace(/[^\w\d]/g, "")
// Some's class => Somes_class
var abbr = full[0]
var testMatch;
$.extend({
replaceTag: function (element, tagName, withDataAndEvents, deepWithDataAndEvents) {
var newTag = $("<" + tagName + ">")[0]
// From [Stackoverflow: Copy all Attributes](http://stackoverflow.com/a/6753486/2096729)
$.each(element.attributes, function() {
newTag.setAttribute(this.name, this.value);
});
$(element).children().clone(withDataAndEvents, deepWithDataAndEvents).appendTo(newTag)
return newTag
}
@colelawrence
colelawrence / AspectRatioTest.coffee
Last active August 29, 2015 14:02
Image aspect ratio from url
@img = null
# Using an Image Object
getAspectRatio = (url, callback) ->
@img = img = new Image()
img.onload = ->
callback null, @width/@height, @width, @height
img.onerror = ->
callback "Failed loading #{url}"
img.src = url
@colelawrence
colelawrence / renderBouncerExtract.coffee
Last active August 29, 2015 14:03
Wait for an element to calculate a offsetWidth before a calculation
do renderBouncer = ->
if inlineImgEl.offsetWidth isnt 0
inlineImgEl.style.height = (inlineImgEl.offsetWidth / ratio) + "px"
else if inlineImgEl.renderOffsetWidthTries++ > 20
inlineImgEl.style.height = (width / ratio) + "px"
else
setTimeout(renderBouncer, 100)
@colelawrence
colelawrence / escapeTopSingleSelection.js
Last active August 29, 2015 14:03
CodeMirror esc reduce selections with sublime keys
$(window).keyup(function(e) {
// esc - reduce selections
if(e.which === 27) {
var cmSel = $(".active-container.last-active .active-sub-container .CodeMirror")
if (cmSel.length === 0)
cmSel = $(".active-container.last-active .CodeMirror")
if (cmSel.length) {
var cm = cmSel[0].CodeMirror
cm.execCommand("singleSelectionTop")
cm.focus()
@colelawrence
colelawrence / form-formed-json.coffee
Last active August 29, 2015 14:03
Convert json to form formatted JSON
process = (str, obj) ->
res = {}
bl = (cont_str, cobj) ->
if typeof cobj is 'object'
for k, v of cobj
bl cont_str + "[#{ k }]", v
else
res[cont_str] = cobj
bl str, obj
return res
@colelawrence
colelawrence / promise-study.coffee
Created July 16, 2014 02:59
A study of promises
{Deferred} = require 'promise.coffee'
# Declare .then((value)->)
log = (value) ->
def = new Deferred
def.resolve console.log value
# return deferred
def.promise
# Declare time to delay
@colelawrence
colelawrence / api-promise-file.coffee
Created July 16, 2014 03:37
Promise file api example
{Deferred} = require 'promise.coffee'
fs = require 'fs'
nodeDef = (def) ->
(err, res) ->
if err?
def.reject err
else
def.resolve(res)