File: /var/www/html/sarvodayahospital/node_modules/turbolinks/src/turbolinks/snapshot_cache.coffee
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()