cache_in.rb 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. module Sessions::CacheIn
  2. @@data = {}
  3. @@data_time = {}
  4. @@expires_in = {}
  5. @@expires_in_ttl = {}
  6. def self.set( key, value, params = {} )
  7. # puts 'CacheIn.set:' + key + '-' + value.inspect
  8. if params[:expires_in]
  9. @@expires_in[key] = Time.now + params[:expires_in]
  10. @@expires_in_ttl[key] = params[:expires_in]
  11. end
  12. @@data[ key ] = value
  13. @@data_time[ key ] = Time.now
  14. end
  15. def self.expired( key, params = {} )
  16. # expire if value never was set
  17. return true if !@@data.include? key
  18. # ignore_expire
  19. return false if params[:ignore_expire]
  20. # set re_expire
  21. if params[:re_expire]
  22. if @@expires_in[key]
  23. @@expires_in[key] = Time.now + @@expires_in_ttl[key]
  24. end
  25. return false
  26. end
  27. # check if expired
  28. if @@expires_in[key]
  29. return true if @@expires_in[key] < Time.now
  30. return false
  31. end
  32. # return false if key was set without expires_in
  33. return false
  34. end
  35. def self.get_time( key, params = {} )
  36. data = self.get( key, params )
  37. if data
  38. return @@data_time[key]
  39. end
  40. return nil
  41. end
  42. def self.get( key, params = {} )
  43. # puts 'CacheIn.get:' + key + '-' + @@data[ key ].inspect
  44. return if self.expired( key, params )
  45. @@data[ key ]
  46. end
  47. end