Class: Delorean::Cache::Adapters::RubyCache
- Defined in:
- lib/delorean/cache/adapters/ruby_cache.rb
Instance Attribute Summary collapse
-
#lookup_cache ⇒ Object
readonly
Returns the value of attribute lookup_cache.
-
#size_per_class ⇒ Object
readonly
Returns the value of attribute size_per_class.
Instance Method Summary collapse
- #cache_item(klass:, cache_key:, item:) ⇒ Object
- #cache_key(klass:, method_name:, args:) ⇒ Object
- #clear!(klass:) ⇒ Object
- #clear_all! ⇒ Object
- #fetch_item(klass:, cache_key:) ⇒ Object
-
#initialize(size_per_class: 1000) ⇒ RubyCache
constructor
A new instance of RubyCache.
Methods inherited from Base
Constructor Details
#initialize(size_per_class: 1000) ⇒ RubyCache
Returns a new instance of RubyCache.
9 10 11 12 |
# File 'lib/delorean/cache/adapters/ruby_cache.rb', line 9 def initialize(size_per_class: 1000) @lookup_cache = {} @size_per_class = size_per_class end |
Instance Attribute Details
#lookup_cache ⇒ Object (readonly)
Returns the value of attribute lookup_cache.
7 8 9 |
# File 'lib/delorean/cache/adapters/ruby_cache.rb', line 7 def lookup_cache @lookup_cache end |
#size_per_class ⇒ Object (readonly)
Returns the value of attribute size_per_class.
7 8 9 |
# File 'lib/delorean/cache/adapters/ruby_cache.rb', line 7 def size_per_class @size_per_class end |
Instance Method Details
#cache_item(klass:, cache_key:, item:) ⇒ Object
14 15 16 17 18 |
# File 'lib/delorean/cache/adapters/ruby_cache.rb', line 14 def cache_item(klass:, cache_key:, item:) lookup_cache[klass] ||= {} clear_outdated_items(klass: klass) lookup_cache[klass][cache_key] = item end |
#cache_key(klass:, method_name:, args:) ⇒ Object
24 25 26 27 28 29 |
# File 'lib/delorean/cache/adapters/ruby_cache.rb', line 24 def cache_key(klass:, method_name:, args:) [method_name] + args.map do |arg| next arg.id if arg.respond_to?(:id) arg end.freeze end |
#clear!(klass:) ⇒ Object
31 32 33 |
# File 'lib/delorean/cache/adapters/ruby_cache.rb', line 31 def clear!(klass:) lookup_cache[klass] = {} end |
#clear_all! ⇒ Object
35 36 37 |
# File 'lib/delorean/cache/adapters/ruby_cache.rb', line 35 def clear_all! @lookup_cache = {} end |
#fetch_item(klass:, cache_key:) ⇒ Object
20 21 22 |
# File 'lib/delorean/cache/adapters/ruby_cache.rb', line 20 def fetch_item(klass:, cache_key:) lookup_cache.dig(klass, cache_key) end |