Sha256: 2429b36b81de844e3a07b6e45f56c34ec9b23f1e9f756bb0035181c1bf870300
Contents?: true
Size: 937 Bytes
Versions: 2
Compression:
Stored size: 937 Bytes
Contents
require 'frenetic/structure_registry/rebuilder' class Frenetic class StructureRegistry class Retriever def initialize(signatures, resource, attributes, key, rebuilder_class: Rebuilder) if key.blank? raise ArgumentError, "When registering a resource structure, you must provide a non-blank key" end @signatures, @resource, @attributes, @key = signatures, resource, attributes, key @rebuilder_class = rebuilder_class end def call if expired? @rebuilder_class.new(@signatures, @resource, @attributes, @key, struct_signature).call else fetch_structure end end def expired? @signatures[@key] != struct_signature end def fetch_structure Struct.const_get(@key) end def struct_signature Digest::SHA1.hexdigest(@attributes.keys.sort.join('')) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
frenetic-3.0.1 | lib/frenetic/structure_registry/retriever.rb |
frenetic-3.0.0 | lib/frenetic/structure_registry/retriever.rb |