README.md in n1_loader-1.2.0 vs README.md in n1_loader-1.3.0
- old
+ new
@@ -43,11 +43,11 @@
```ruby
class User
include N1Loader::Loadable
# with inline loader
- n1_loader :orders_count do |users|
+ n1_optimized :orders_count do |users|
orders_per_user = Order.where(user: users).group(:user_id).count
users.each { |user| fulfill(user, orders_per_user[user.id]) }
end
end
@@ -67,11 +67,11 @@
```ruby
class User
include N1Loader::Loadable
# with inline loader
- n1_loader :orders_count do |users|
+ n1_optimized :orders_count do |users|
orders_per_user = Order.where(user: users).group(:user_id).count
users.each { |user| fulfill(user, orders_per_user[user.id]) }
end
end
@@ -96,18 +96,18 @@
end
end
class User
include N1Loader::Loadable
-
- n1_loader :orders_count, OrdersCountLoader
+
+ n1_optimized :orders_count, OrdersCountLoader
end
class Customer
include N1Loader::Loadable
-
- n1_loader :orders_count, OrdersCountLoader
+
+ n1_optimized :orders_count, OrdersCountLoader
end
User.new.orders_count # => works
Customer.new.orders_count # => works
```
@@ -117,11 +117,11 @@
```ruby
class User
include N1Loader::Loadable
# with inline loader
- n1_loader :orders_count do |users|
+ n1_optimized :orders_count do |users|
orders_per_user = Order.where(user: users).group(:user_id).count
users.each { |user| fulfill(user, orders_per_user[user.id]) }
end
end
@@ -157,12 +157,12 @@
### Optimized single case
```ruby
class User
include N1Loader::Loadable
-
- n1_loader :orders_count do # no arguments passed to the block, so we can override both perform and single.
+
+ n1_optimized :orders_count do # no arguments passed to the block, so we can override both perform and single.
def perform(users)
orders_per_user = Order.where(user: users).group(:user_id).count
users.each { |user| fulfill(user, orders_per_user[user.id]) }
end
@@ -186,11 +186,11 @@
```ruby
class User
include N1Loader::Loadable
- n1_loader :orders_count do |users, type|
+ n1_optimized :orders_count do |users, type|
orders_per_user = Order.where(type: type, user: users).group(:user_id).count
users.each { |user| fulfill(user, orders_per_user[user.id]) }
end
end
@@ -210,20 +210,20 @@
```ruby
class User
include N1Loader::Loadable
- n1_loader :orders_count do
+ n1_optimized :orders_count do
+ argument :sale
+
+ cache_key { sale.id }
+
def perform(users, sale)
orders_per_user = Order.where(sale: sale, user: users).group(:user_id).count
users.each { |user| fulfill(user, orders_per_user[user.id]) }
end
-
- def self.arguments_key(sale)
- sale.id
- end
end
end
user = User.new
user.orders_count(Sale.first) # perform will be executed and value will be cached
@@ -233,15 +233,17 @@
## Integrations
### [ActiveRecord][5]
+_Note_: Rails 7 support is coming soon! Stay tuned!
+
```ruby
class User < ActiveRecord::Base
include N1Loader::Loadable
-
- n1_loader :orders_count do |users|
+
+ n1_optimized :orders_count do |users|
orders_per_user = Order.where(user: users).group(:user_id).count
users.each { |user| fulfill(user, orders_per_user[user.id]) }
end
end
@@ -264,11 +266,11 @@
### [ArLazyPreload][6]
```ruby
class User < ActiveRecord::Base
include N1Loader::Loadable
-
- n1_loader :orders_count do |users|
+
+ n1_optimized :orders_count do |users|
orders_per_user = Order.where(user: users).group(:user_id).count
users.each { |user| fulfill(user, orders_per_user[user.id]) }
end
end
\ No newline at end of file