Class: HolidaysFromGoogleCalendar::Cache
- Inherits:
-
Object
- Object
- HolidaysFromGoogleCalendar::Cache
- Defined in:
- lib/holidays_from_google_calendar/cache.rb
Instance Attribute Summary collapse
-
#size ⇒ Object
readonly
Returns the value of attribute size.
Instance Method Summary collapse
- #cache(holidays, date_min, date_max) ⇒ Object
- #enabled? ⇒ Boolean
-
#initialize(enable: nil, max_size: nil) ⇒ Cache
constructor
A new instance of Cache.
- #retrieve(date_min, date_max) ⇒ Object
Constructor Details
#initialize(enable: nil, max_size: nil) ⇒ Cache
Returns a new instance of Cache.
5 6 7 8 9 10 |
# File 'lib/holidays_from_google_calendar/cache.rb', line 5 def initialize(enable: nil, max_size: nil) @enable = enable @max_size = max_size @container = [] calculate_size end |
Instance Attribute Details
#size ⇒ Object (readonly)
Returns the value of attribute size.
3 4 5 |
# File 'lib/holidays_from_google_calendar/cache.rb', line 3 def size @size end |
Instance Method Details
#cache(holidays, date_min, date_max) ⇒ Object
16 17 18 19 |
# File 'lib/holidays_from_google_calendar/cache.rb', line 16 def cache(holidays, date_min, date_max) pack_container(CacheUnit.new(holidays.dup, date_min, date_max)) page_out if calculate_size > @max_size end |
#enabled? ⇒ Boolean
12 13 14 |
# File 'lib/holidays_from_google_calendar/cache.rb', line 12 def enabled? @enable end |
#retrieve(date_min, date_max) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/holidays_from_google_calendar/cache.rb', line 21 def retrieve(date_min, date_max) unit = @container.find { |e| e.include?(date_min, date_max) } return nil if unit.nil? # For LRU (Least Recently Used) @container.delete(unit) @container.push(unit) unit.retrieve(date_min, date_max) end |