Class: RegexpExamples::ResultCountLimiters

Inherits:
Object
  • Object
show all
Defined in:
lib/regexp-examples/constants.rb

Overview

Configuration settings to limit the number/length of Regexp examples generated

Constant Summary collapse

MAX_REPEATER_VARIANCE_DEFAULT =

The maximum variance for any given repeater, to prevent a huge/infinite number of examples from being listed. For example, if @@max_repeater_variance = 2 then: .* is equivalent to .0,2 .+ is equivalent to .1,3 .2, is equivalent to .2,4 .,3 is equivalent to .0,2 .3,8 is equivalent to .3,5

2
MAX_GROUP_RESULTS_DEFAULT =

Maximum number of characters returned from a char set, to reduce output spam For example, if @@max_group_results = 5 then: d is equivalent to [01234] w is equivalent to [abcde]

5
MAX_RESULTS_LIMIT_DEFAULT =

Maximum number of results to be generated, for Regexp#examples This is to prevent the system “freezing” when given instructions like: /[ab]30/.examples (Which would attempt to generate 2**30 == 1073741824 examples!!!)

10_000

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.max_group_resultsObject (readonly)

Returns the value of attribute max_group_results.



26
27
28
# File 'lib/regexp-examples/constants.rb', line 26

def max_group_results
  @max_group_results
end

.max_repeater_varianceObject (readonly)

Returns the value of attribute max_repeater_variance.



26
27
28
# File 'lib/regexp-examples/constants.rb', line 26

def max_repeater_variance
  @max_repeater_variance
end

.max_results_limitObject (readonly)

Returns the value of attribute max_results_limit.



26
27
28
# File 'lib/regexp-examples/constants.rb', line 26

def max_results_limit
  @max_results_limit
end

Class Method Details

.configure!(max_repeater_variance: nil, max_group_results: nil, max_results_limit: nil) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/regexp-examples/constants.rb', line 27

def configure!(max_repeater_variance: nil,
               max_group_results: nil,
               max_results_limit: nil)
  @max_repeater_variance = (max_repeater_variance || MAX_REPEATER_VARIANCE_DEFAULT)
  @max_group_results = (max_group_results || MAX_GROUP_RESULTS_DEFAULT)
  @max_results_limit = (max_results_limit || MAX_RESULTS_LIMIT_DEFAULT)
end