class SmartPreloads::List

Public Class Methods

new(collection, loader: nil) click to toggle source
# File lib/smart_preloads/list.rb, line 5
def initialize(collection, loader: nil)
  @collection = collection
  @loader = loader || Loader.new(@collection)
end

Public Instance Methods

+(other) click to toggle source
# File lib/smart_preloads/list.rb, line 28
def +(other)
  to_a + other.to_a
end
==(other) click to toggle source
# File lib/smart_preloads/list.rb, line 20
def ==(other)
  to_a == other
end
[](idx) click to toggle source
# File lib/smart_preloads/list.rb, line 32
def [](idx)
  to_a[idx]
end
each() { |resource| ... } click to toggle source
# File lib/smart_preloads/list.rb, line 10
def each
  loaded_collection.each do |resource|
    if resource.is_a?(Item)
      yield resource
    else
      yield Item.new(resource, loader: @loader)
    end
  end
end
size() click to toggle source
# File lib/smart_preloads/list.rb, line 24
def size
  to_a.size
end

Protected Instance Methods

fetch_loaded_collection() click to toggle source
# File lib/smart_preloads/list.rb, line 42
def fetch_loaded_collection
  preload_defaults
  @collection
end
loaded_collection() click to toggle source
# File lib/smart_preloads/list.rb, line 38
def loaded_collection
  @loaded_collection ||= fetch_loaded_collection
end
preload_defaults() click to toggle source
# File lib/smart_preloads/list.rb, line 47
def preload_defaults
  @loader.load_default
end