lib/contrast/agent/assess/policy/propagator/select.rb in contrast-agent-3.14.0 vs lib/contrast/agent/assess/policy/propagator/select.rb in contrast-agent-3.15.0

- old
+ new

@@ -12,35 +12,43 @@ # in a 'get it work' state. hopefully, we'll be in # a 'get it right' state soon. class Select class << self def select_tagger patcher, preshift, ret, _block + properties = Contrast::Agent::Assess::Tracker.properties(ret) + return unless properties + source = preshift.object args = preshift.args # 'gotcha' # Additionally, an empty string is returned when the starting index for # a character range is at the end of the string. Let's just skip that # and only track a string that has length - return unless source.cs__tracked? && ret && !ret.empty? + unless ret && + !ret.empty? && + Contrast::Agent::Assess::Tracker.tracked?(source) + return + end - source.cs__properties.events.each do |event| - ret.cs__properties.events << event + source_properties = Contrast::Agent::Assess::Tracker.properties(source) + source_properties.events.each do |event| + properties.events << event end - ret.cs__properties.build_event( + properties.build_event( patcher, ret, source, ret, args) range = determine_select_range(source, args) return unless range - tags = source.cs__properties.tags_at_range(range) - ret.cs__properties.clear_tags + tags = source_properties.tags_at_range(range) + properties.clear_tags tags.each_pair do |key, value| - ret.cs__properties.set_tags(key, value) + properties.set_tags(key, value) end ret end private