Sha256: aade5ceaa190973f9d6c359bb0207e5d9008375103ae657d74dfba40082093a4

Contents?: true

Size: 672 Bytes

Versions: 1

Compression:

Stored size: 672 Bytes

Contents

# frozen_string_literal: true

module N1Loader
  module ArLazyPreload
    module Loadable
      module ClassMethods # :nodoc:
        def n1_load(name, loader = nil, &block)
          name, loader_name, loader_variable_name = super

          define_method(loader_name) do
            loader = instance_variable_get(loader_variable_name)
            return loader if loader

            if respond_to?(:lazy_preload_context) && ContextAdapter.new(lazy_preload_context).try_preload_lazily(name)
              return instance_variable_get(loader_variable_name)
            end

            send("#{loader_name}_reload")
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
n1_loader-1.2.0 lib/n1_loader/ar_lazy_preload/loadable.rb