33 lines
1.0 KiB
CoffeeScript
33 lines
1.0 KiB
CoffeeScript
###
|
|
Crafting Guide - base_model.coffee
|
|
|
|
Copyright (c) 2014-2015 by Redwood Labs
|
|
All rights reserved.
|
|
###
|
|
|
|
########################################################################################################################
|
|
|
|
module.exports = class BaseModel extends Backbone.Model
|
|
|
|
constructor: (attributes={}, options={})->
|
|
super attributes, options
|
|
|
|
makeGetter = (name)-> return -> @get name
|
|
makeSetter = (name)-> return (value)-> @set name, value
|
|
for name in _.keys attributes
|
|
continue if name is 'id'
|
|
Object.defineProperty this, name, get:makeGetter(name), set:makeSetter(name)
|
|
|
|
# Backbone.Model Overrides #####################################################################
|
|
|
|
sync: -> # do nothing
|
|
|
|
trigger: (name)->
|
|
logger.trace "#{@constructor.name}.#{@cid} triggered a \"#{name}\" event"
|
|
super
|
|
|
|
# Object Overrides #############################################################################
|
|
|
|
toString: ->
|
|
return "#{@constructor.name} (#{@cid})"
|