module TieredCaching::CachedObjectStatic
Constants
- Attributes
Public Instance Methods
[](key)
click to toggle source
# File lib/tiered_caching/cached_object.rb, line 13 def [](key) if on_missing_callback cache.getset(internal_key(key)) { on_missing_callback.call(key) } else cache.get(internal_key(key)) end end
[]=(key, value)
click to toggle source
# File lib/tiered_caching/cached_object.rb, line 21 def []=(key, value) raise TypeError, "Cannot convert #{value.class} into #{self}" unless value.is_a?(self) cache.set(internal_key(key)) { value } end
cache_line=(value)
click to toggle source
# File lib/tiered_caching/cached_object.rb, line 5 def cache_line=(value) @cache_line = value end
delete(key)
click to toggle source
# File lib/tiered_caching/cached_object.rb, line 27 def delete(key) cache.delete(internal_key(key)) end
on_missing(&callback)
click to toggle source
# File lib/tiered_caching/cached_object.rb, line 9 def on_missing(&callback) attributes[:on_missing_callback] = callback end
Private Instance Methods
attributes()
click to toggle source
# File lib/tiered_caching/cached_object.rb, line 46 def attributes @attributes ||= Attributes.new end
cache()
click to toggle source
# File lib/tiered_caching/cached_object.rb, line 33 def cache CacheMaster[@cache_line] end
internal_key(key)
click to toggle source
# File lib/tiered_caching/cached_object.rb, line 41 def internal_key(key) raise ArgumentError, 'Non-string keys are not supported!' unless key.is_a?(String) {class: self, key: key.encode('UTF-8')} end
on_missing_callback()
click to toggle source
# File lib/tiered_caching/cached_object.rb, line 37 def on_missing_callback attributes[:on_missing_callback] end