Skip to content

Instantly share code, notes, and snippets.

View devongovett's full-sized avatar

Devon Govett devongovett

View GitHub Profile
#this is the coffeescript with method overloading
class User
find: (id) ->
console.log "find by id"
find: (first, last) ->
console.log "find by first and last name"
class NewUser extends User
# Syntax for private methods in CoffeeScript
class Test
publicMethod: ->
alert @foo
private
foo: "hello world!"
privateMethod ->
"private"
class Users
find: (id) ->
# find user by id
find: (first, last) ->
# find user by first and last name
/*
* is.js
* Function that returns whether an object is of a given type.
* Pass multiple types to test whether an object is of any of the types
* Originally by Dmitry Baranovskiy
* Modified by Devon Govett to support multiple types
*/
function is(o /*, type, type */) {
var types = Array.prototype.slice.call(arguments, 1);
Employee = new db.Model(function() {
this.key("name", String, { required: true });
this.key("email", String);
this.hasMany("Office");
})
// #1. Standard hash, but with relationships defined outside of that hash
db.define('Employee', {
name: Record.type('String').required(),
employee_number: Record.type('Number').defaultValue(123)
})
Employee.hasOne('Office')
__hasProp: true
yearsOld: {max: 10, ida: 9, tim: 11}
ages: for child, age of yearsOld
child + " is " + age
# compiles into this JavaScript, which will not work
var _a, _b, age, ages, child, yearsOld;
var __hasProp = Object.prototype.hasOwnProperty;
__hasProp = true;
class Animal
move: (meters) ->
alert @name + " moved " + meters + "m."
class Snake extends Animal
constructor: (name) ->
@name: name
move: (distance) ->
alert "Slithering..."
/*
Render SVG Arc with canvas commands
Usage: solveArc(x, y, coords)
*/
function solveArc(x, y, coords) {
var rx = coords[0]
var ry = coords[1]
var rot = coords[2]
var large = coords[3]
/*
Path parser by Devon Govett
Input: String path
Returns: Array of objects with command and arguments
*/
//Number of allowed parameters for each command
var parameters = {
A: 7,
a: 7,