From bc0dbeb20850bf41f4d9d1a81e0aca14cb1e0ab8 Mon Sep 17 00:00:00 2001 From: Youssef Makboul Date: Thu, 28 Nov 2024 17:46:50 -0500 Subject: [PATCH] clean up write recording --- lib/liquid/block_body.rb | 12 +++++++++--- lib/liquid/resource_limits.rb | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/liquid/block_body.rb b/lib/liquid/block_body.rb index 1ed0c7f3..f29c839f 100644 --- a/lib/liquid/block_body.rb +++ b/lib/liquid/block_body.rb @@ -238,9 +238,15 @@ module Liquid context.registers.static[:write_scores] ||= [] - # THIS ISNT ACTUALLY A LIST OF NET OUTPUTS - last_captured = context.registers.static[:write_scores].any? ? context.registers.static[:write_scores].last : 0 - context.registers.static[:write_scores] << (output.bytesize - last_captured) + if (last_captured = context.resource_limits.last_capture_length) + captured = output.bytesize + increment = captured - last_captured + context.registers.static[:assign_scores] ||= [] + context.registers.static[:assign_scores] << ['cap', increment] + else + context.registers.static[:write_scores] ||= [] + context.registers.static[:write_scores] << (output.bytesize) + end context.resource_limits.increment_write_score(output) end diff --git a/lib/liquid/resource_limits.rb b/lib/liquid/resource_limits.rb index 70fac24b..418f18ac 100644 --- a/lib/liquid/resource_limits.rb +++ b/lib/liquid/resource_limits.rb @@ -2,7 +2,7 @@ module Liquid class ResourceLimits - attr_accessor :render_length_limit, :render_score_limit, :assign_score_limit + attr_accessor :render_length_limit, :render_score_limit, :assign_score_limit, :last_capture_length attr_reader :render_score, :assign_score def initialize(limits)