lib/contrast/agent/assess/policy/propagator/substitution.rb in contrast-agent-3.12.2 vs lib/contrast/agent/assess/policy/propagator/substitution.rb in contrast-agent-3.13.0

- old
+ new

@@ -1,9 +1,10 @@ # Copyright (c) 2020 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details. # frozen_string_literal: true cs__scoped_require 'contrast/components/interface' +cs__scoped_require 'contrast/utils/duck_utils' module Contrast module Agent module Assess module Policy @@ -107,11 +108,11 @@ break unless idx last_idx = idx ? idx + 1 : nil start_index = idx end_index = idx + incoming.length - ranges << Contrast::Agent::Assess::AdjustedSpan.new(start_index, end_index) + ranges << (start_index...end_index) break unless global end ret.cs__properties.delete_tags_at_ranges(ranges) ret.cs__properties.shift_tags(ranges) return unless incoming_tracked @@ -131,15 +132,14 @@ def hash_sub self_tracked, source, ret source.cs__splat_tags(ret) if self_tracked end def pattern_gsub preshift, ret - return unless ret + return unless Contrast::Utils::DuckUtils.trackable?(ret) source = preshift.object source.cs__properties.tag_keys.each do |key| - span = Contrast::Agent::Assess::AdjustedSpan.new(0, 1) - ret.cs__properties.add_tag(key, span) + ret.cs__properties.add_tag(key, 0...1) end end def string_build_event patcher, preshift, ret return unless Contrast::Utils::DuckUtils.quacks_to?(ret, :cs__tracked?) && ret.cs__tracked?