lib/contrast/agent/assess/policy/propagator/base.rb in contrast-agent-7.5.0 vs lib/contrast/agent/assess/policy/propagator/base.rb in contrast-agent-7.6.0
- old
+ new
@@ -10,22 +10,32 @@
# the Contrast::Agent::Assess::Policy::PropagationNode class. Each
# type of propagator does so differently, but always acts on a Source
# to pass tags from it to a Target.
class Base
class << self
+ # Retrieve the source from the preshift state.
+ #
+ # @param source [Symbol] the source to retrieve.
+ # @param preshift [Contrast::Agent::Assess::PreShift] the pre-call state of the things.
def find_source source, preshift
case source
when Contrast::Utils::ObjectShare::OBJECT_KEY
preshift.object
else
preshift.args[source]
end
end
+ # Check if tags are present on the given target.
+ #
+ # @return [Boolean]
def tracked_value? value
Contrast::Agent::Assess::Tracker.tracked?(value)
end
+ # Propagate the tags from the source to the target.
+ # This method should be extended by the subclasses.
+ #
# @raise [NoMethodError] This is being raised if any of the implementing subclasses does not have
# that method implemented, but is being called on.
def propagate _propagation_node, _preshift, _target
raise(NoMethodError("Expected Base propagator subclass: #{ cs__class } to implement #propagate"))
end