class Primalize::JSONAPI::Cache

Public Class Methods

new() click to toggle source
# File lib/primalize/jsonapi.rb, line 130
def initialize
  # Three-layer cache: metadata/serialization, class, and id
  @cache = Hash.new do |h, k|
    h[k] = Hash.new do |h, k|
      h[k] = {}
    end
  end
end

Public Instance Methods

[](type, model) click to toggle source
# File lib/primalize/jsonapi.rb, line 139
def [] type, model
  return if model.nil?

  @cache[type][model.class][model.id]
end
[]=(type, model, value) click to toggle source
# File lib/primalize/jsonapi.rb, line 145
def []= type, model, value
  return if model.nil?

  @cache[type][model.class][model.id] = value
end
fetch(type, model) { || ... } click to toggle source
# File lib/primalize/jsonapi.rb, line 151
def fetch type, model
  return if model.nil?

  @cache[type][model.class][model.id] ||= yield
end