Sha256: e181948833923444c3e0a5d8d9b6c401667975ef11feec9624ef5140e33276f6

Contents?: true

Size: 515 Bytes

Versions: 2

Compression:

Stored size: 515 Bytes

Contents

require 'frenetic/structure_registry/retriever'

class Frenetic
  class StructureRegistry
    attr_reader :signatures

    def initialize(retriever_class: Frenetic::StructureRegistry::Retriever)
      @signatures = {}
      @retriever_class = retriever_class
    end

    def construct(resource, attributes, key)
      fetch(resource, attributes, key).new(*attributes.values)
    end

    def fetch(resource, attributes, key)
      @retriever_class.new(signatures, resource, attributes, key).call
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
frenetic-3.0.1 lib/frenetic/structure_registry.rb
frenetic-3.0.0 lib/frenetic/structure_registry.rb