Class: PaperTrailDiff::TraversalPreparer
- Inherits:
-
Object
- Object
- PaperTrailDiff::TraversalPreparer
- Defined in:
- lib/paper_trail_diff/traversal_preparer.rb,
sig/generated/paper_trail_diff/traversal_preparer.rbs
Overview
Checks that a model can be traversed before any reconstruction starts, and that association tracking is actually available when history is involved.
Instance Method Summary collapse
-
#call(model_class, historical:) ⇒ void
: (untyped, historical: bool) -> void.
-
#ensure_association_tracking! ⇒ void
: () -> void.
-
#initialize(tree:, traversal:) ⇒ TraversalPreparer
constructor
: (tree: AssociationTree, traversal: AssociationTraversal) -> void.
Constructor Details
#initialize(tree:, traversal:) ⇒ TraversalPreparer
: (tree: AssociationTree, traversal: AssociationTraversal) -> void
9 10 11 12 |
# File 'lib/paper_trail_diff/traversal_preparer.rb', line 9 def initialize(tree:, traversal:) @tree = tree @traversal = traversal end |
Instance Method Details
#call(model_class, historical:) ⇒ void
This method returns an undefined value.
: (untyped, historical: bool) -> void
15 16 17 18 19 20 |
# File 'lib/paper_trail_diff/traversal_preparer.rb', line 15 def call(model_class, historical:) return if @tree.empty? ensure_association_tracking! if historical @traversal.validate!(model_class) end |
#ensure_association_tracking! ⇒ void
This method returns an undefined value.
: () -> void
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/paper_trail_diff/traversal_preparer.rb', line 28 def ensure_association_tracking! paper_trail = Object.const_get(:PaperTrail) #: untyped config = paper_trail.config #: untyped available = defined?(::PaperTrailAssociationTracking) && config.respond_to?(:track_associations?) && config.track_associations? return if available = 'association tracking must be loaded and enabled to compare historical associations' raise AssociationTrackingUnavailableError, end |