Files
website/src/scripts/models/base_model.coffee
T

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})"