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?