Sha256: 69d5c62b0a0f4da394cae88ca88cd94f094a051b7b290d59f29bca512a1ee47c

Contents?: true

Size: 511 Bytes

Versions: 1

Compression:

Stored size: 511 Bytes

Contents

# frozen_string_literal: true

module N1Loader
  # The class is used for storing collections of loaders for elements per set of arguments.
  class LoaderCollection
    attr_reader :loader_class, :elements

    def initialize(loader_class, elements)
      @loader_class = loader_class
      @elements = elements
    end

    def with(*args)
      loader = loader_class.new(elements, *args)

      loaders[loader.cache_key] ||= loader
    end

    private

    def loaders
      @loaders ||= {}
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
n1_loader-1.3.0 lib/n1_loader/core/loader_collection.rb