Sha256: 2444f861ea69d84a73214e33b8fe39dbdc18b0133c3b4177157feea1cdddae38
Contents?: true
Size: 465 Bytes
Versions: 9
Compression:
Stored size: 465 Bytes
Contents
module Apnotic class InstanceCache def initialize(instance, method, ttl) @instance = instance @method = method @ttl = ttl end def call if @cached_value && !expired? @cached_value else new_value end end private def expired? Time.now - @cached_at >= @ttl end def new_value @cached_at = Time.now @cached_value = @instance.send(@method) end end end
Version data entries
9 entries across 9 versions & 1 rubygems