Skip to content

Instantly share code, notes, and snippets.

View asalant's full-sized avatar

Alon Salant asalant

  • Good Eggs
  • San Francisco
View GitHub Profile
@asalant
asalant / factories.coffee
Created October 11, 2012 04:56
Ubiquitous JS example: shared factory
Factory.define 'user', User,
name: -> Faker.Name.findName()
email: Faker.uniq 'userEmail', Faker.Internet.email.bind(Faker.Internet)
passwordHash: '$2a$10$iZ8vqtQXQ6...'
@asalant
asalant / orders.spec.coffee
Created October 11, 2012 04:47
Ubiquitous JS example: Orders Controller spec
{Factory} = require '../../../support/spec_helper'
request = require 'request'
$ = require 'jquery'
describe 'Orders Controller', ->
describe 'when there is an order for pickup', ->
beforeEach ->
Factory.create 'orderForPickup'
@asalant
asalant / user_edit_view.spec.coffee
Created October 11, 2012 04:38
Ubiquitous JS example: UserEditView spec
{ Factory } = require '../../support/spec_helper'
UserEditView = require '../../../../client/js/views/user_edit_view'
describe 'UserEditView', ->
describe 'render', ->
{user, view} = {}
beforeEach ->
user = Factory.create 'user'
@asalant
asalant / user_mixin.coffee
Created October 11, 2012 04:24
Ubiquitous JS example: UserMixin
module.exports = UserMixin = (User) ->
_(User.prototype).extend
holla: ->
"Hey #{@get('name')}!"
@asalant
asalant / user.coffee
Created October 11, 2012 04:23
Ubiquitous JS example: Backbone User
UserMixin = require '../../../../shared/user_mixins'
module.exports = class User extends Backbone.Model
idAttribute: '_id'
urlRoot: '/users'
UserMixin(User)
@asalant
asalant / user.coffee
Created October 11, 2012 04:20
Ubiquitous JS example: Mongoose User
mongoose = require 'mongoose'
UserMixin = require '../../shared/user_mixins'
schema = new mongoose.Schema
email: { type: String, lowercase: true, required: true, unique: true }
name: { type: String, required: true }
passwordHash: { type: String }
User = mongoose.model('User', schema)
UserMixin(User)
@asalant
asalant / underscore_mixins.coffee
Created October 11, 2012 04:06
Ubiquitous JS example: Underscore.js mixins
_ = require 'underscore'
accounting = require 'accounting'
format = require '../shared/lib/format'
_.mixin
formatNumber: accounting.formatNumber
formatDate: format.formatDate
formatDateRange: format.formatDateRange
@asalant
asalant / router.coffee
Created October 11, 2012 03:50
Ubiquitous JS example: Browserify entry point
User = require '../shared/models/user'
UserEditView = require './views/user_edit_view'
$ ->
router = new Backbone.Router {
'users/:userId/edit': 'user-edit'
}
router.on 'route:user-edit', (userId) ->
user = new User(_id: userId)
@asalant
asalant / user_edit_view.coffee
Created October 11, 2012 03:36
Ubiquitous JS example: UserEditView
templates = require '../../shared/lib/templates'
User = require '../../shared/models/user'
withManagedForm = require '../lib/with_managed_form'
template = ->
h2 @user.get("name")
form '.edit-user', ->
label "Name"
input name: "name", type: "text"
@asalant
asalant / mongo console
Created October 11, 2012 03:21
Ubiquitous JS example: Mongo query
> db.users.find({ email: /gmail\.com$/i }).pretty()
{
"_id" : ObjectId("5031b5a6166d270200001858"),
"name" : "Dan Theman",
"email" : "[email protected]",
"passwordHash" : "####",
"updatedAt" : ISODate("2012-08-20T03:57:26.584Z"),
"createdAt" : ISODate("2012-08-20T03:57:26.584Z"),
}
...