Sha256: 0ddcc712e7a5daab57b11ea8364b1bb9d27304ce50b30f04ba7faceb482c313f
Contents?: true
Size: 1.97 KB
Versions: 1
Compression:
Stored size: 1.97 KB
Contents
# Mongoload [![Gem Version](https://badge.fury.io/rb/mongoload.svg)](https://badge.fury.io/rb/mongoload) [![Build Status](https://travis-ci.org/karloku/mongoload.svg?branch=master)](https://travis-ci.org/karloku/mongoload) Mongoload is a gem to perform eager loading automatically for Mongoid, inspired by [Goldiloader](https://github.com/salsify/goldiloader). ## Usage Just install Mongoload. It will automatically eager load your reference relation the first time you access it. ## Install Add this line to your application's Gemfile: gem 'mongoload' Or install it yourself as: $ gem install mongoload ## Options ### :auto_include Mark if Mongoload should perform eager loading on the relation. Pass ```:auto_include``` option to the definition, the value should be ```true```(by default) or ```false```. ```ruby class User include Mongoid::Document has_one :device, auto_include: false # Do not perform automatic eager loading on :device relation has_many :posts field :username end # Following call will not trigger automatic eager loading on device User.all.each(&:device) ``` ### :fully_load Mark if Mongoload should perform eager loading on the relation, when accessed by following methods: + #first + #last + #size + #empty? Pass ```:fully_load``` option to the definition, the value should be ```true``` or ```false```(by default). ```ruby class Tag include Mongoid::Document has_and_belongs_to_many :posts, fully_load: true field :name end # Following calls will trigger automatic eager loading on posts Tag.all.each { |tag| tag.posts.first } Tag.all.each { |tag| tag.posts.last } Tag.all.each { |tag| tag.posts.size } Tag.all.each { |tag| tag.posts.empty? } ``` PS: As for ```#second```, ```#third```, ```#fourth```, ```#fifth``` and ```#forty_two``` calls, mongoid will delegate them to the entries of a relation enumerable set, which makes them just same as a ```#to_a``` call. ## Copyright Copyright (c) 2016 Kaloku Sang See LICENSE.txt for details.
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mongoload-0.0.3 | README.md |