gitlab-org--gitlab-foss/lib/gitlab/template_parser/eval_state.rb

27 lines
461 B
Ruby

# frozen_string_literal: true
module Gitlab
module TemplateParser
# A class for tracking state when evaluating a template
class EvalState
MAX_LOOPS = 4
def initialize
@loops = 0
end
def enter_loop
if @loops == MAX_LOOPS
raise Error, "You can only nest up to #{MAX_LOOPS} loops"
end
@loops += 1
retval = yield
@loops -= 1
retval
end
end
end
end