Module: Railsmith::BaseService::EagerLoading::ClassMethods
- Defined in:
- lib/railsmith/base_service/eager_loading.rb
Overview
Class-level DSL macros for declaring eager loads on a service.
Instance Method Summary collapse
-
#eager_loads ⇒ Object
Returns the accumulated eager-load arguments for this class.
-
#includes(*args) ⇒ Object
Declare one or more eager loads.
- #inherited(subclass) ⇒ Object
Instance Method Details
#eager_loads ⇒ Object
Returns the accumulated eager-load arguments for this class.
39 40 41 |
# File 'lib/railsmith/base_service/eager_loading.rb', line 39 def eager_loads @eager_loads || [] end |
#includes(*args) ⇒ Object
Declare one or more eager loads. Multiple calls are additive.
Accepts the same arguments as ActiveRecord’s ‘includes`:
includes :foo, :bar
includes foo: :bar
includes foo: [:bar, :baz]
33 34 35 36 |
# File 'lib/railsmith/base_service/eager_loading.rb', line 33 def includes(*args) @eager_loads ||= [] @eager_loads.concat(args) end |
#inherited(subclass) ⇒ Object
43 44 45 46 |
# File 'lib/railsmith/base_service/eager_loading.rb', line 43 def inherited(subclass) super subclass.instance_variable_set(:@eager_loads, eager_loads.dup) end |