Sha256: 8f87975306ee24abe458d8b847b8286aea38b7d9a6d1a6c37ffaafb26bd0d1ce
Contents?: true
Size: 1.14 KB
Versions: 6
Compression:
Stored size: 1.14 KB
Contents
# * Require ./../underscore/underscore.string # * Require ./../underscore/underscore.inflection #= require ./base class Ultimate.Backbone.Model extends Backbone.Model readyDeferred: null loaded: false loadedTimeStamp: null expireTime: Infinity constructor: (attributes, options = {}) -> Ultimate.Backbone.debug ".Model.constructor()", @ @expireTime = options.expireTime if options.expireTime? @on 'sync', => @loadedTimeStamp = new Date() @loaded = true super ready: (callback, fetchOptions) -> lifeTime = if @loadedTimeStamp then (new Date() - @loadedTimeStamp) else 0 if expired = lifeTime > @expireTime @readyDeferred = null if @id and (not @loaded or expired) @readyDeferred ||= @fetch(fetchOptions) @readyDeferred.done => callback.apply @ else callback.apply @ abort: -> if @readyDeferred? if @readyDeferred.state() is 'pending' @readyDeferred.abort() @readyDeferred = null singular: -> modelName = @constructor.modelName or @modelName or @className or @constructor.name or 'Model' _.singularize(_.string.underscored(modelName))
Version data entries
6 entries across 6 versions & 1 rubygems