Sha256: 4ddf4f22a1c5403c19cda3f205e566c696dc2790fdc5e4a8b4c5703166b29cf8

Contents?: true

Size: 1.06 KB

Versions: 11

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

class CamaleonRecord < ActiveRecord::Base
  include ActiveRecordExtras::Relation

  self.abstract_class = true

  # save cache value for this key
  def cama_set_cache(key, val)
    @cama_cache_vars ||= {}
    @cama_cache_vars[cama_build_cache_key(key)] = val
    val
  end

  # remove cache value for this key
  def cama_remove_cache(key)
    @cama_cache_vars.delete(cama_build_cache_key(key))
  end

  # fetch the cache value for this key
  def cama_fetch_cache(key)
    @cama_cache_vars ||= {}
    _key = cama_build_cache_key(key)
    if @cama_cache_vars.key?(_key)
      # puts "*********** using model cache var: #{_key}"
    else
      @cama_cache_vars[_key] = yield
    end
    @cama_cache_vars[_key]
  end

  # return the cache value for this key
  def cama_get_cache(key)
    @cama_cache_vars ||= {}
    begin
      @cama_cache_vars[cama_build_cache_key(key)]
    rescue StandardError
      nil
    end
  end

  # internal helper to generate cache key
  def cama_build_cache_key(key)
    _key = "cama_cache_#{self.class.name}_#{id}_#{key}"
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
camaleon_cms-2.9.0 app/models/camaleon_record.rb
camaleon_cms-2.8.3 app/models/camaleon_record.rb
camaleon_cms-2.8.2 app/models/camaleon_record.rb
camaleon_cms-2.8.1 app/models/camaleon_record.rb
camaleon_cms-2.8.0 app/models/camaleon_record.rb
camaleon_cms-2.7.5 app/models/camaleon_record.rb
camaleon_cms-2.7.4 app/models/camaleon_record.rb
camaleon_cms-2.7.3 app/models/camaleon_record.rb
camaleon_cms-2.7.2 app/models/camaleon_record.rb
camaleon_cms-2.7.1 app/models/camaleon_record.rb
camaleon_cms-2.7.0 app/models/camaleon_record.rb