Skip to content

Instantly share code, notes, and snippets.

Mike Knoop mikeknoop

View GitHub Profile
View gist:62ce3690b510576ef17c
mike keynote (short, 5 minutes)
jason, platform (activation, embeds)
bryan/james, making changes to zapier (things you can edit in admin, how2github, future of editing code)
mike, flow (progress, whats next)
View indexed-db-workaround.coffee
# APPLICATION CODE (uses underscore.js)
lawnchair = new Lawnchair({}, (->))
# hackery to cope with firefox and lawnchair, indexedDB not doing asnyc validation
# so well. If indexedDB isn't available (after doing a .open() check) then remove it
# from the available adapters and re-init lawnchair with a new instance.
# see: https://github.com/brianleroux/lawnchair/issues/189
indexedDBValid = (callback) =>
idb = window.indexedDB or window.webkitIndexedDB or window.mozIndexedDB or window.oIndexedDB or window.msIndexedDB
View helper_use.html
<div>There is {{#article}}{{animal}}{{/article}} in the middle of the room.</div>
<!-- context passed as {noun: 'elephant'} -->
<div>There is an elephant in the middle of the room.</div>
<!-- context passed as {noun: 'mouse'} -->
<div>There is a mouse in the middle of the room.</div>
View helper.coffee
# accessor: returns the article "a" or "an" depending on the context string. Eg. "Computer" will return "a"
# and "Elephant" will return "an". Can pass a hash option `capitalize` which will capitalize the article.
# usage: {{#article}}string{{/article}} outputs "a string"
Handlebars.registerHelper "article", (options) ->
# options: pass `capitalize` true to get a capital article
string = options.fn(@)
vowels = ['a', 'e', 'i', 'o', 'u']
vowel = false
letter = string.toLowerCase()[0]
vowel = true for v in vowels when letter == v
View seriously?.coffee
define([
'jquery',
'use!underscore',
'use!backbone',
'mustache',
'text!template/header.html',
'text!template/loggedInLinks.html',
'text!template/loggedInTempLinks.html',
'text!template/loggedOutLinks.html',
'views/home/__init__',
View extend.scss
button {
color: black;
.success { color: green; }
.error { color: red; }
.disabled { color: gray; }
}
.homepage {
// make the home page call to action green
.call-to-action { @extend button.success; }
View composition.coffee
Book = new Backbone.Model.extend()
Paginate =
page: 0
turnPage: () ->
@page += 1
@fetch {data: {page: @page}}
book = _.extend new Book(), Paginate
book.turnPage()
View example.js
setCaret: function($el) {
var caret, lastCaret,
_this = this;
if (_.any(this.NO_CARET_TYPES, function(type) {
return type === _this.model.get('type');
})) {
return;
}
lastCaret = this.getCaret();
if (($el != null ? $el[0] : void 0) != null) {
View example.coffee
setCaret: ($el) ->
return if _.any @NO_CARET_TYPES, (type) => return type == @model.get('type')
lastCaret = @getCaret()
caret = $el.atCaret('getCaretPosition') if $el?[0]?
@model.set {caret: caret, lastCaret: lastCaret}
$el.attr 'data-caret', caret if caret?
$el.attr 'data-last-caret', lastCaret if lastCaret?
You can’t perform that action at this time.