Class: RegexpExamples::RangeRepeater

Inherits:
BaseRepeater show all
Defined in:
lib/regexp-examples/repeaters.rb

Overview

When a range is used, e.g. ‘/a1/`, `/a1,/`, `/a1,3/`, `/a,3/`

Instance Attribute Summary

Attributes inherited from BaseRepeater

#group, #max_repeats, #min_repeats

Instance Method Summary collapse

Methods inherited from BaseRepeater

#random_result, #result

Constructor Details

#initialize(group, min, has_comma, max) ⇒ RangeRepeater

Returns a new instance of RangeRepeater.



80
81
82
83
84
85
86
87
88
89
90
# File 'lib/regexp-examples/repeaters.rb', line 80

def initialize(group, min, has_comma, max)
  super(group)
  @min_repeats = min || 0
  if max # e.g. {1,100} --> Treat as {1,3} (by default max_repeater_variance)
    @max_repeats = smallest(max, @min_repeats + RegexpExamples.max_repeater_variance)
  elsif has_comma # e.g. {2,} --> Treat as {2,4} (by default max_repeater_variance)
    @max_repeats = @min_repeats + RegexpExamples.max_repeater_variance
  else # e.g. {3} --> Treat as {3,3}
    @max_repeats = @min_repeats
  end
end