debian-mirror-gitlab/lib/gitlab/template_parser/eval_state.rb

27 lines
461 B
Ruby
Raw Normal View History

2021-03-11 19:13:27 +05:30
# frozen_string_literal: true
module Gitlab
2021-09-30 23:02:18 +05:30
module TemplateParser
2021-03-11 19:13:27 +05:30
# 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