Module: Trax::Model::Mixins::CachedFindBy::ClassMethods

Defined in:
lib/trax/model/mixins/cached_find_by.rb

Instance Method Summary collapse

Instance Method Details

#cached_find_by(**params) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/trax/model/mixins/cached_find_by.rb', line 8

def cached_find_by(**params)
  cache_key = ::Trax::Model::CacheKey.new(self.name.underscore.pluralize, '.find_by', **params)

  ::Trax::Model.cache.fetch(cache_key, cache_key.options) do
    self.find_by(cache_key.search_params)
  end
end

#cached_where(**params) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/trax/model/mixins/cached_find_by.rb', line 16

def cached_where(**params)
  cache_key = ::Trax::Model::CacheKey.new(self.name.underscore.pluralize, '.where', **params)

  ::Trax::Model.cache.fetch(cache_key, cache_key.options) do
    self.where(cache_key.search_params).to_a
  end
end

#clear_cached_find_by(**params) ⇒ Object



24
25
26
27
28
# File 'lib/trax/model/mixins/cached_find_by.rb', line 24

def clear_cached_find_by(**params)
  cache_key = ::Trax::Model::CacheKey.new(self.name.underscore.pluralize, '.find_by', **params)

  ::Trax::Model.cache.delete(cache_key)
end

#clear_cached_where(**params) ⇒ Object



30
31
32
33
34
# File 'lib/trax/model/mixins/cached_find_by.rb', line 30

def clear_cached_where(**params)
  cache_key = ::Trax::Model::CacheKey.new(self.name.underscore.pluralize, '.where', **params)

  ::Trax::Model.cache.delete(cache_key)
end