class ReportsKits::Cache

Constants

CACHE_PREFIX

Public Class Methods

get(properties, context_record) click to toggle source
# File lib/reports_kits/cache.rb, line 5
def self.get(properties, context_record)
  return unless store
  key = self.key(properties, context_record)
  json_string = store.get(key)
  return if json_string.blank?
  ActiveSupport::JSON.decode(json_string)
end
set(properties, context_record, data) click to toggle source
# File lib/reports_kits/cache.rb, line 13
def self.set(properties, context_record, data)
  return unless store
  key = self.key(properties, context_record)
  json_string = ActiveSupport::JSON.encode(data)
  store.setex(key, duration, json_string)
end

Private Class Methods

duration() click to toggle source
# File lib/reports_kits/cache.rb, line 29
def self.duration
  @duration ||= ReportsKits.configuration.cache_duration
end
key(properties, context_record) click to toggle source
# File lib/reports_kits/cache.rb, line 22
def self.key(properties, context_record)
  key = properties.to_json
  key += "#{context_record.class}#{context_record.id}" if context_record
  key = Digest::MD5.hexdigest(key)
  "#{CACHE_PREFIX}#{key}"
end
store() click to toggle source
# File lib/reports_kits/cache.rb, line 33
def self.store
  @store ||= ReportsKits.configuration.cache_store
end