Entry that is put into caches. It supports expiration time on entries and can compress values to save space in the cache.
Create an entry with internal attributes set. This method is intended to be used by implementations that store cache entries in a native format instead of as serialized Ruby objects.
# File D:/Develope/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/cache.rb, line 540 def create (raw_value, created_at, options = {}) entry = new(nil) entry.instance_variable_set(:@value, raw_value) entry.instance_variable_set(:@created_at, created_at.to_f) entry.instance_variable_set(:@compressed, !!options[:compressed]) entry.instance_variable_set(:@expires_in, options[:expires_in]) entry end
Create a new cache entry for the specified value. Options supported are :compress, :compress_threshold, and :expires_in.
# File D:/Develope/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/cache.rb, line 552 def initialize(value, options = {}) @compressed = false @expires_in = options[:expires_in] @expires_in = @expires_in.to_f if @expires_in @created_at = Time.now.to_f if value if should_compress?(value, options) @value = Zlib::Deflate.deflate(Marshal.dump(value)) @compressed = true else @value = value end else @value = nil end end
# File D:/Develope/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/cache.rb, line 585 def compressed? @compressed end
Check if the entry is expired. The expires_in parameter can override the value set when the entry was created.
# File D:/Develope/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/cache.rb, line 591 def expired? if @expires_in && @created_at + @expires_in <= Time.now.to_f true else false end end
Seconds since the epoch when the entry will expire.
# File D:/Develope/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/cache.rb, line 609 def expires_at @expires_in ? @created_at + @expires_in : nil end
Set a new time when the entry will expire.
# File D:/Develope/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/cache.rb, line 600 def expires_at=(time) if time @expires_in = time.to_f - @created_at else @expires_in = nil end end
Get the raw value. This value may be serialized and compressed.
# File D:/Develope/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/cache.rb, line 570 def raw_value @value end
Returns the size of the cached value. This could be less than value.size if the data is compressed.
# File D:/Develope/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/cache.rb, line 615 def size if @value.nil? 0 elsif @value.respond_to?(:bytesize) @value.bytesize else Marshal.dump(@value).bytesize end end
Get the value stored in the cache.
# File D:/Develope/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/cache.rb, line 575 def value if @value val = compressed? ? Marshal.load(Zlib::Inflate.inflate(@value)) : @value unless val.frozen? val.freeze rescue nil end val end end
Generated with the Darkfish Rdoc Generator 2.