Class: RailsTypedSettings::Cache
- Inherits:
-
Object
- Object
- RailsTypedSettings::Cache
- Defined in:
- lib/rails_typed_settings/cache.rb
Instance Attribute Summary collapse
-
#get_value ⇒ Object
Returns the value of attribute get_value.
-
#last_added ⇒ Object
Returns the value of attribute last_added.
-
#max_size ⇒ Object
Returns the value of attribute max_size.
-
#misses ⇒ Object
Returns the value of attribute misses.
-
#store ⇒ Object
Returns the value of attribute store.
Instance Method Summary collapse
- #add(key, value) ⇒ Object
- #clear ⇒ Object
-
#initialize(max_size, &block) ⇒ Cache
constructor
A new instance of Cache.
- #remove(key) ⇒ Object
- #value(key) ⇒ Object
Constructor Details
#initialize(max_size, &block) ⇒ Cache
6 7 8 9 10 11 |
# File 'lib/rails_typed_settings/cache.rb', line 6 def initialize(max_size, &block) @max_size = max_size @store = {} @get_value = block @misses = 0 end |
Instance Attribute Details
#get_value ⇒ Object
Returns the value of attribute get_value.
4 5 6 |
# File 'lib/rails_typed_settings/cache.rb', line 4 def get_value @get_value end |
#last_added ⇒ Object
Returns the value of attribute last_added.
3 4 5 |
# File 'lib/rails_typed_settings/cache.rb', line 3 def last_added @last_added end |
#max_size ⇒ Object
Returns the value of attribute max_size.
3 4 5 |
# File 'lib/rails_typed_settings/cache.rb', line 3 def max_size @max_size end |
#misses ⇒ Object
Returns the value of attribute misses.
3 4 5 |
# File 'lib/rails_typed_settings/cache.rb', line 3 def misses @misses end |
#store ⇒ Object
Returns the value of attribute store.
3 4 5 |
# File 'lib/rails_typed_settings/cache.rb', line 3 def store @store end |
Instance Method Details
#add(key, value) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/rails_typed_settings/cache.rb', line 24 def add(key, value) store[key] = value if store.count > max_size remove_last end self.last_added = key value end |
#clear ⇒ Object
39 40 41 42 |
# File 'lib/rails_typed_settings/cache.rb', line 39 def clear self.misses = 0 self.store = {} end |
#remove(key) ⇒ Object
35 36 37 |
# File 'lib/rails_typed_settings/cache.rb', line 35 def remove(key) store.delete(key) end |
#value(key) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/rails_typed_settings/cache.rb', line 13 def value(key) v = store[key] unless v @misses = @misses + 1 v = get_value.call(key) add(key, v) if v end v end |