module SleeperRb::Utilities::Cache
This module encapsulates the logic for caching and refreshing values retrieved from the Sleeper API.
Public Class Methods
included(base)
click to toggle source
Ensures that ClassMethods
are extended into the base class when including.
# File lib/sleeper_rb/utilities/cache.rb, line 81 def self.included(base) base.extend ClassMethods end
new(opts = {})
click to toggle source
Sets up an object with values for any cached_attrs
pre-initialized if provided.
@param opts [Hash] Key/value pairs that can match any cached_attr.
# File lib/sleeper_rb/utilities/cache.rb, line 89 def initialize(opts = {}) opts.slice(*cached_attrs.keys).each do |key, val| instance_variable_set(:"@#{key}", cached_attrs[key].call(val)) end end
Public Instance Methods
refresh()
click to toggle source
Refreshes all associations and memoized values set by cached_attr.
@return [self]
# File lib/sleeper_rb/utilities/cache.rb, line 99 def refresh cached_attrs.keys.reject { |k| skip_refresh_fields == :all || skip_refresh_fields.include?(k) }.each do |attr| ivar = :"@#{attr}" instance_variable_set(ivar, nil) end @values = nil @cached_associations = {} self end
Private Instance Methods
cached_associations()
click to toggle source
# File lib/sleeper_rb/utilities/cache.rb, line 119 def cached_associations @cached_associations ||= {} end
cached_attrs()
click to toggle source
# File lib/sleeper_rb/utilities/cache.rb, line 111 def cached_attrs self.class.cached_attrs end
retrieve_values!()
click to toggle source
# File lib/sleeper_rb/utilities/cache.rb, line 127 def retrieve_values! {} end
skip_refresh_fields()
click to toggle source
# File lib/sleeper_rb/utilities/cache.rb, line 115 def skip_refresh_fields self.class.skip_refresh_fields end
values()
click to toggle source
# File lib/sleeper_rb/utilities/cache.rb, line 123 def values @values ||= retrieve_values! end