class Feefo::ReviewFetcher
Attributes
feefo_config[R]
filters[R]
Public Class Methods
new(filters, feefo_config = Feefo.config, cache = Rails.cache)
click to toggle source
# File lib/feefo/review_fetcher.rb, line 5 def initialize(filters, feefo_config = Feefo.config, cache = Rails.cache) @filters = filters @feefo_config = feefo_config @cache = cache end
Public Instance Methods
fetch_reviews_json()
click to toggle source
# File lib/feefo/review_fetcher.rb, line 11 def fetch_reviews_json with_caching do RemoteReviewFetcher.new(filters, feefo_config).fetch_reviews end end
Private Instance Methods
cache()
click to toggle source
# File lib/feefo/review_fetcher.rb, line 35 def cache @cache end
feefo_key(filters)
click to toggle source
# File lib/feefo/review_fetcher.rb, line 31 def feefo_key(filters) "feefo_reviews_for_#{filters[:code]}_#{filters[:category]}" end
fetch_from_cache()
click to toggle source
# File lib/feefo/review_fetcher.rb, line 23 def fetch_from_cache cache.read feefo_key(filters) end
store_in_cache(reviews)
click to toggle source
# File lib/feefo/review_fetcher.rb, line 27 def store_in_cache(reviews) cache.write feefo_key(filters), reviews, expires_in: feefo_config[:time_to_cache_reviews] end
with_caching() { || ... }
click to toggle source
# File lib/feefo/review_fetcher.rb, line 19 def with_caching fetch_from_cache || yield.tap { |reviews| store_in_cache(reviews) } end