Class: Serega::SeregaPlugins::Preloads::PreloadPaths

Inherits:
Object
  • Object
show all
Defined in:
lib/serega/plugins/preloads/lib/preload_paths.rb

Overview

Utility that helps to transform preloads to array of paths

Example:

call({ a: { b: { c: {}, d: {} } }, e: {} })

=> [
     [:a],
     [:a, :b],
     [:a, :b, :c],
     [:a, :b, :d],
     [:e]
   ]

Class Method Summary collapse

Class Method Details

.call(preloads) ⇒ Hash

Transforms user provided preloads to array of paths

Parameters:

  • preloads (Array, Hash, String, Symbol, nil, false)

    association(s) to preload

Returns:

  • (Hash)

    preloads transformed to hash



29
30
31
32
33
34
# File 'lib/serega/plugins/preloads/lib/preload_paths.rb', line 29

def call(preloads)
  formatted_preloads = FormatUserPreloads.call(preloads)
  return FROZEN_EMPTY_ARRAY if formatted_preloads.empty?

  paths(formatted_preloads, [], [])
end