class Bizside::Cache::Entry
Constants
- DEFAULT_COMPRESS_LIMIT
Public Class Methods
new(value, options = {})
click to toggle source
# File lib/bizside/cache/entry.rb, line 6 def initialize(value, options = {}) if should_compress?(value, options) @value = compress(value) @compressed = true else @value = value end @created_at = Time.now.to_f @expires_in = options[:expires_in] @expires_in = @expires_in.to_f if @expires_in end
Public Instance Methods
dup_value!()
click to toggle source
# File lib/bizside/cache/entry.rb, line 56 def dup_value! convert_version_4beta1_entry! if defined?(@v) if @value && !compressed? && !(@value.is_a?(Numeric) || @value == true || @value == false) if @value.is_a?(String) @value = @value.dup else @value = Marshal.load(Marshal.dump(@value)) end end end
expired?()
click to toggle source
# File lib/bizside/cache/entry.rb, line 24 def expired? convert_version_4beta1_entry! if defined?(@v) @expires_in && @created_at + @expires_in <= Time.now.to_f end
expires_at()
click to toggle source
# File lib/bizside/cache/entry.rb, line 29 def expires_at @expires_in ? @created_at + @expires_in : nil end
expires_at=(value)
click to toggle source
# File lib/bizside/cache/entry.rb, line 33 def expires_at=(value) if value @expires_in = value.to_f - @created_at else @expires_in = nil end end
size()
click to toggle source
# File lib/bizside/cache/entry.rb, line 41 def size if defined?(@s) @s else case value when NilClass 0 when String @value.bytesize else @s = Marshal.dump(@value).bytesize end end end
value()
click to toggle source
# File lib/bizside/cache/entry.rb, line 19 def value convert_version_4beta1_entry! if defined?(@v) compressed? ? uncompress(@value) : @value end
Private Instance Methods
compress(value)
click to toggle source
# File lib/bizside/cache/entry.rb, line 85 def compress(value) Zlib::Deflate.deflate(Marshal.dump(value)) end
compressed?()
click to toggle source
# File lib/bizside/cache/entry.rb, line 81 def compressed? defined?(@compressed) ? @compressed : false end
convert_version_4beta1_entry!()
click to toggle source
# File lib/bizside/cache/entry.rb, line 93 def convert_version_4beta1_entry! if defined?(@v) @value = @v remove_instance_variable(:@v) end if defined?(@c) @compressed = @c remove_instance_variable(:@c) end if defined?(@x) && @x @created_at ||= Time.now.to_f @expires_in = @x - @created_at remove_instance_variable(:@x) end end
should_compress?(value, options)
click to toggle source
# File lib/bizside/cache/entry.rb, line 70 def should_compress?(value, options) if value && options[:compress] compress_threshold = options[:compress_threshold] || DEFAULT_COMPRESS_LIMIT serialized_value_size = (value.is_a?(String) ? value : Marshal.dump(value)).bytesize return true if serialized_value_size >= compress_threshold end false end
uncompress(value)
click to toggle source
# File lib/bizside/cache/entry.rb, line 89 def uncompress(value) Marshal.load(Zlib::Inflate.inflate(value)) end