Sha256: aa3f6e5fb8c51b9662e352350dc9b1b8e6aca45db50ebc647593514f38a4eb6a
Contents?: true
Size: 797 Bytes
Versions: 3
Compression:
Stored size: 797 Bytes
Contents
# frozen_string_literal: true module N1Loader # Loader that performs the loading. # # Subclasses must define +perform+ method that accepts single argument # and returns hash where key is the element and value is what we want to load. class Loader def initialize(elements) @elements = elements end def perform(_elements) raise NotImplemented, "Subclasses have to implement the method" end def loaded @loaded ||= perform(elements) end def preloaded_records @preloaded_records ||= loaded.values end def for(element) raise NotLoaded, "The data was not preloaded for the given element" unless elements.include?(element) loaded.compare_by_identity[element] end private attr_reader :elements end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
n1_loader-0.1.2 | lib/n1_loader/core/loader.rb |
n1_loader-0.1.1 | lib/n1_loader/loader.rb |
n1_loader-0.1.0 | lib/n1_loader/loader.rb |