Sha256: 5b663aa19065b68cfacfbe6ecca61009ecae63afae3533c9c0ddd4c37b2be489
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true require 'graphql/cache/builder' module GraphQL module Cache # Used to marshal data to/from cache on cache hits/misses class Marshal attr_accessor :key def self.[](key) new(key) end def initialize(key) self.key = key.to_s end def read(config, &block) cached = cache.read(key) if cached.nil? logger.debug "Cache miss: (#{key})" write config, &block else logger.debug "Cache hit: (#{key})" build cached, config end end def write(config) resolved = yield expiry = config[:metadata][:expiry] || GraphQL::Cache.expiry document = Builder[resolved].deconstruct cache.write(key, document, expires_in: expiry) resolved end def build(cached, config) Builder[cached].build(config) end def cache GraphQL::Cache.cache end def logger GraphQL::Cache.logger end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
graphql-cache-0.2.0 | lib/graphql/cache/marshal.rb |