Class: TranslationDiff::Stores::Memory
- Inherits:
-
Object
- Object
- TranslationDiff::Stores::Memory
- Defined in:
- lib/translation_diff/stores/memory.rb
Overview
The default cache, a bounded in-process LRU. NOT thread-safe, deliberately -- set redis_url for that.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(max_size:) ⇒ Memory
constructor
A new instance of Memory.
- #read_multi(keys) ⇒ Object
- #write(key, value) ⇒ Object
- #write_multi(pairs) ⇒ Object
Constructor Details
#initialize(max_size:) ⇒ Memory
Returns a new instance of Memory.
5 6 7 8 |
# File 'lib/translation_diff/stores/memory.rb', line 5 def initialize(max_size:) @max_size = max_size @entries = {} end |
Class Method Details
.build(config) ⇒ Object
3 |
# File 'lib/translation_diff/stores/memory.rb', line 3 def self.build(config) = new(max_size: config.cache_max_size) |
Instance Method Details
#read_multi(keys) ⇒ Object
10 11 12 |
# File 'lib/translation_diff/stores/memory.rb', line 10 def read_multi(keys) keys.map { |key| touch(key) } end |
#write(key, value) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/translation_diff/stores/memory.rb', line 14 def write(key, value) @entries.delete(key) @entries[key] = value @entries.shift while @entries.size > @max_size value end |
#write_multi(pairs) ⇒ Object
21 22 23 |
# File 'lib/translation_diff/stores/memory.rb', line 21 def write_multi(pairs) pairs.each { |key, value| write(key, value) } end |