Sha256: 8ad5e3c42aa6079f49942dde93518de1994cd1f3975751ffdf24612a816a9c12

Contents?: true

Size: 682 Bytes

Versions: 6

Compression:

Stored size: 682 Bytes

Contents

# * George Moschovitis  <gm@navel.gr>
# (c) 2004-2005 Navel, all rights reserved.
# $Id: mixins.rb 1 2005-04-11 11:04:30Z gmosx $

module Glue 

# Generic expiring functionality mixin. 

module Expirable
	attr_accessor :expires

	# Set the expires timeout for this entry.

	def expires_after(timeout = (60*60*24))
		@expires = Time.now + timeout
	end

	# Set the expire timeout for this entry. The timeout happens
	# after (base + rand(spread)) seconds.

	def expires_spread(base, spread)
		@expires = Time.now + base + rand(spread)
	end

	# Is this entry expired?

	def expired?
		if @expires.nil? or (Time.now > @expires)
			return true
		else
			return false
		end
	end
end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
glue-0.17.0 lib/glue/mixins.rb
glue-0.18.0 lib/glue/mixins.rb
glue-0.16.0 lib/glue/mixins.rb
glue-0.18.1 lib/glue/mixins.rb
glue-0.19.0 lib/glue/mixins.rb
glue-0.20.0 lib/glue/mixins.rb