Sha256: c97c569b5503e87d8fba241cf41cb11dda1fd1479fc94254b405be30dc11c600

Contents?: true

Size: 505 Bytes

Versions: 1

Compression:

Stored size: 505 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)
      loaders[loader_class.arguments_key(*args)] ||= loader_class.new(elements, *args)
    end

    private

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

Version data entries

1 entries across 1 versions & 1 rubygems

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