Class: Chronos::Core::CacheNormalizer
- Inherits:
-
Object
- Object
- Chronos::Core::CacheNormalizer
- Defined in:
- lib/chronos/core/cache_normalizer.rb
Overview
Produces bounded cache metadata without exposing raw cache keys or values.
Instance Method Summary collapse
- #call(name, payload = {}) ⇒ Object
-
#initialize(project_id, key_mode) ⇒ CacheNormalizer
constructor
A new instance of CacheNormalizer.
Constructor Details
#initialize(project_id, key_mode) ⇒ CacheNormalizer
Returns a new instance of CacheNormalizer.
18 19 20 21 |
# File 'lib/chronos/core/cache_normalizer.rb', line 18 def initialize(project_id, key_mode) @project_id = project_id.to_s @key_mode = key_mode end |
Instance Method Details
#call(name, payload = {}) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/chronos/core/cache_normalizer.rb', line 23 def call(name, payload = {}) hit = hit_value(name, payload) result = { "operation" => bounded(name.to_s.split(".").first, 64), "backend" => backend(payload), "namespace" => bounded(namespace(payload).to_s, 128), "hit" => hit, "outcome" => outcome(hit) } result["key_hash"] = key_hash(value(payload, :key)) if @key_mode == :sha256 result.delete_if { |key, child| child.to_s.empty? && key != "hit" } rescue StandardError {"operation" => "cache", "outcome" => "unknown"} end |