summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/liquid-4.0.4/lib/liquid/resource_limits.rb
blob: 08b359bab5e57a01eb3a000e0612dee1b33e7c1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
module Liquid
  class ResourceLimits
    attr_accessor :render_length, :render_score, :assign_score,
      :render_length_limit, :render_score_limit, :assign_score_limit

    def initialize(limits)
      @render_length_limit = limits[:render_length_limit]
      @render_score_limit = limits[:render_score_limit]
      @assign_score_limit = limits[:assign_score_limit]
      reset
    end

    def reached?
      (@render_length_limit && @render_length > @render_length_limit) ||
        (@render_score_limit && @render_score > @render_score_limit) ||
        (@assign_score_limit && @assign_score > @assign_score_limit)
    end

    def reset
      @render_length = @render_score = @assign_score = 0
    end
  end
end