Sha256: 7b5546a2736a289a62578ac491da419793284c6aecc1990b759ad14ed4dc4f67
Contents?: true
Size: 904 Bytes
Versions: 7
Compression:
Stored size: 904 Bytes
Contents
module FactoryDataPreloader class PreloaderCollection < Array def dependency_order unordered_preloaders = Array.new(self) # rather than using self.dup since singleton doesn't allow duping. ordered_preloaders = [] until unordered_preloaders.empty? unordered_preloaders.each do |preloader| if preloader.dependencies.all? { |dependency| ordered_preloaders.include?(dependency) } ordered_preloaders << unordered_preloaders.delete(preloader) end end end ordered_preloaders end def from_symbol(symbol, raise_error = true) unless preloader = self.detect { |p| p.model_type == symbol } raise PreloaderNotDefinedError, "The preloader for :#{symbol} has not been defined." if raise_error end preloader end end class AllPreloaders < PreloaderCollection include Singleton end end
Version data entries
7 entries across 7 versions & 2 rubygems