summaryrefslogtreecommitdiff
path: root/lib/mpeg/repitition.rb
blob: 9903b60f8ddcc6206804a580a4b1ac819ae75a01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
module Mpeg
  class Repitition < Base
    def initialize(parser, min, max)
      @parser = parser
      @min = min
      @max = max
    end

    def call(input)
      occurrences = 0
      loop do
        break unless @parser.call(input)
        occurrences += 1
        return false if @max && occurrences > @max
      end
      occurrences >= @min
    end
  end
end