Module: Sequel::Plugins::EagerEach::DatasetMethods
- Defined in:
- lib/sequel/plugins/eager_each.rb
Instance Method Summary collapse
-
#all(&block) ⇒ Object
If eager loading, clone the dataset and set a flag to let #each know not to call #all, to avoid the infinite loop.
-
#columns ⇒ Object
Don’t call #all when attempting to load the columns.
-
#each(&block) ⇒ Object
Call #all instead of #each if eager loading, uless #each is being called by #all.
-
#single_record! ⇒ Object
Handle eager loading when calling first and related methods.
Instance Method Details
#all(&block) ⇒ Object
If eager loading, clone the dataset and set a flag to let #each know not to call #all, to avoid the infinite loop.
53 54 55 56 57 58 59 |
# File 'lib/sequel/plugins/eager_each.rb', line 53 def all(&block) if use_eager_all? clone(:all_called=>true).all(&block) else super end end |
#columns ⇒ Object
Don’t call #all when attempting to load the columns.
33 34 35 36 37 38 39 |
# File 'lib/sequel/plugins/eager_each.rb', line 33 def columns if use_eager_all? clone(:all_called=>true).columns else super end end |
#each(&block) ⇒ Object
Call #all instead of #each if eager loading, uless #each is being called by #all.
43 44 45 46 47 48 49 |
# File 'lib/sequel/plugins/eager_each.rb', line 43 def each(&block) if use_eager_all? all(&block) else super end end |
#single_record! ⇒ Object
Handle eager loading when calling first and related methods. For eager_graph, this does an additional query after retrieving a single record, because otherwise the associated records won’t get eager loaded correctly.
64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/sequel/plugins/eager_each.rb', line 64 def single_record! if use_eager_all? obj = clone(:all_called=>true).all.first if opts[:eager_graph] obj = clone(:all_called=>true).where(obj.qualified_pk_hash).unlimited.all.first end obj else super end end |