cache_in.rb 1.3 KB

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