Module: EagerEye::Detectors::Concerns::VariableModelInference
- Included in:
- EagerEye::Detectors::CustomMethodQuery, LoopAssociation
- Defined in:
- lib/eager_eye/detectors/concerns/variable_model_inference.rb
Overview
Tracks the inferred model class behind a local/instance variable, by walking AST value-nodes down to a ‘:const` (e.g. `User.where(…)` →`“User”`). Recurses into argument lists of relation-wrapper methods (pagy, paginate, …) so that `pagy(User.includes(…))` is still recognized as a User-relation.
Constant Summary collapse
- RELATION_WRAPPERS =
Methods whose first positional argument is the underlying relation (Pagy/Kaminari/etc.). Walking into those args lets us see through the wrapper to the source query.
%i[pagy paginate page kaminari with_pagy].freeze
- PAGINATION_META_NAMES =
LHS names in ‘@pagy, items = pagy(query)`-style assignments that should not inherit the relation’s model — they hold pagination metadata, not records.
%i[pagy paginator meta page_info pagination].freeze