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