Class: Sinarey::FifoCache
- Inherits:
-
Object
- Object
- Sinarey::FifoCache
- Defined in:
- lib/sinarey_cache/fifo/cache.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, val) ⇒ Object (also: #store)
- #clear ⇒ Object
- #delete(key) ⇒ Object
- #fetch(key) ⇒ Object
- #getset(key) ⇒ Object
-
#initialize(max_size) ⇒ FifoCache
constructor
A new instance of FifoCache.
- #max_size=(size) ⇒ Object
- #member?(key) ⇒ Boolean
Constructor Details
#initialize(max_size) ⇒ FifoCache
4 5 6 7 |
# File 'lib/sinarey_cache/fifo/cache.rb', line 4 def initialize(max_size) @max_size = max_size @data = {} end |
Instance Method Details
#[](key) ⇒ Object
14 15 16 |
# File 'lib/sinarey_cache/fifo/cache.rb', line 14 def [](key) @data[key] end |
#[]=(key, val) ⇒ Object Also known as: store
26 27 28 29 30 |
# File 'lib/sinarey_cache/fifo/cache.rb', line 26 def []=(key,val) @data[key] = val @data.delete(@data.first[0]) if @data.length > @max_size val end |
#clear ⇒ Object
42 43 44 |
# File 'lib/sinarey_cache/fifo/cache.rb', line 42 def clear @data.clear end |
#delete(key) ⇒ Object
38 39 40 |
# File 'lib/sinarey_cache/fifo/cache.rb', line 38 def delete(key) @data.delete(key) end |
#fetch(key) ⇒ Object
18 19 20 |
# File 'lib/sinarey_cache/fifo/cache.rb', line 18 def fetch(key) @data[key] || yield if block_given? end |
#getset(key) ⇒ Object
22 23 24 |
# File 'lib/sinarey_cache/fifo/cache.rb', line 22 def getset(key) @data[key] ||= yield end |
#max_size=(size) ⇒ Object
9 10 11 12 |
# File 'lib/sinarey_cache/fifo/cache.rb', line 9 def max_size=(size) raise ArgumentError.new(:max_size) if @max_size < 1 @max_size = size end |
#member?(key) ⇒ Boolean
34 35 36 |
# File 'lib/sinarey_cache/fifo/cache.rb', line 34 def member?(key) @data.member?(key) end |