Sha256: 0b279005aae63bafdf83111632a130eda23894df404adc9aacd7e779733f11b8

Contents?: true

Size: 607 Bytes

Versions: 13

Compression:

Stored size: 607 Bytes

Contents

require 'n1_loader'

require_relative 'context/service'

# Class that wants to request 3rd party service without N+1
class User
  include N1Loader::Loadable

  n1_optimized :optimized_call do |users|
    data = Service.receive(users)

    users.each_with_index do |user, index|
      fulfill(user, data[index])
    end
  end
end

users = [User.new, User.new, User.new]

# Initialized loader but didn't perform it yet
N1Loader::Preloader.new(users).preload(:optimized_call)
p "No calls yet: #{Service.count == 0}"

# First time loading
users.map(&:optimized_call)
p "First time loaded: #{Service.count == 1}"

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
n1_loader-1.7.2 examples/lazy_loading.rb
n1_loader-1.7.1 examples/lazy_loading.rb
n1_loader-1.7.0 examples/lazy_loading.rb
n1_loader-1.6.6 examples/lazy_loading.rb
n1_loader-1.6.5 examples/lazy_loading.rb
n1_loader-1.6.4 examples/lazy_loading.rb
n1_loader-1.6.3 examples/lazy_loading.rb
n1_loader-1.6.2 examples/lazy_loading.rb
n1_loader-1.6.1 examples/lazy_loading.rb
n1_loader-1.6.0 examples/lazy_loading.rb
n1_loader-1.5.1 examples/lazy_loading.rb
n1_loader-1.5.0 examples/lazy_loading.rb
n1_loader-1.4.4 examples/lazy_loading.rb