allow caching options to be specified for counting services
This commit is contained in:
parent
bfac8b7aba
commit
e292bf5b88
2 changed files with 13 additions and 1 deletions
|
@ -9,7 +9,7 @@ class BaseCountService
|
|||
end
|
||||
|
||||
def count
|
||||
Rails.cache.fetch(cache_key, raw: raw?) { uncached_count }.to_i
|
||||
Rails.cache.fetch(cache_key, cache_options) { uncached_count }.to_i
|
||||
end
|
||||
|
||||
def refresh_cache
|
||||
|
@ -31,4 +31,10 @@ class BaseCountService
|
|||
def cache_key
|
||||
raise NotImplementedError, 'cache_key must be implemented and return a String'
|
||||
end
|
||||
|
||||
# subclasses can override to add any specific options, such as
|
||||
# super.merge({ expires_in: 5.minutes })
|
||||
def cache_options
|
||||
{ raw: raw? }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -77,4 +77,10 @@ describe BaseCountService, :use_clean_rails_memory_store_caching do
|
|||
expect { service.cache_key }.to raise_error(NotImplementedError)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#cache_options' do
|
||||
it 'returns the default in options' do
|
||||
expect(service.cache_options).to eq({ raw: false })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue