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