UNPKG

turbolinks

Version:

Turbolinks makes navigating your web application faster

44 lines (34 loc) 907 B
class Turbolinks.SnapshotCache constructor: (@size) -> @keys = [] @snapshots = {} has: (location) -> key = keyForLocation(location) key of @snapshots get: (location) -> return unless @has(location) snapshot = @read(location) @touch(location) snapshot put: (location, snapshot) -> @write(location, snapshot) @touch(location) snapshot # Private read: (location) -> key = keyForLocation(location) @snapshots[key] write: (location, snapshot) -> key = keyForLocation(location) @snapshots[key] = snapshot touch: (location) -> key = keyForLocation(location) index = @keys.indexOf(key) @keys.splice(index, 1) if index > -1 @keys.unshift(key) @trim() trim: -> for key in @keys.splice(@size) delete @snapshots[key] keyForLocation = (location) -> Turbolinks.Location.wrap(location).toCacheKey()