Sha256: a367fa1cc179c3a48f26b152455f12ba14a4aae236125d4d74a7f089b3d14ce7
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
class Joosy.Resources.Cacher extends Joosy.Module @include Joosy.Modules.Events @include Joosy.Modules.Filters @registerPlainFilters 'beforeLoad' @cache: (cacheKey) -> @::__cacheKey = cacheKey @fetcher: (fetcher) -> @::__fetcher = fetcher constructor: (callback, cacheKey=false, fetcher=false) -> if typeof(cacheKey) == 'function' fetcher = cacheKey cacheKey = undefined @__fetcher = fetcher if fetcher @__cacheKey = cacheKey if cacheKey if @__cacheKey && localStorage && localStorage[@__cacheKey] @data = @__applyBeforeLoads(JSON.parse localStorage[@__cacheKey]) callback? @ @refresh() else @refresh callback clone: (callback) -> copy = new @constructor(callback, @__cacheKey, @__fetcher) copy.data = Object.clone(@data, true) copy.trigger 'changed' copy refresh: (callback) -> @__fetcher (result) => localStorage[@__cacheKey] = JSON.stringify(result) if @__cacheKey && localStorage @data = @__applyBeforeLoads result callback? @ @trigger 'changed' # AMD wrapper if define?.amd? define 'joosy/resources/cacher', -> Joosy.Resources.Cacher
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
joosy-1.2.0.alpha.71 | source/joosy/resources/cacher.coffee |