Module: Rack::Mount::Analysis::Splitting
- Defined in:
- lib/rack/mount/analysis/splitting.rb
Defined Under Namespace
Classes: Key
Constant Summary collapse
- NULL =
"\0".freeze
Instance Method Summary collapse
- #<<(key) ⇒ Object
- #clear ⇒ Object
- #process_key(requirements, method, requirement) ⇒ Object
- #separators(key) ⇒ Object
Instance Method Details
#<<(key) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/rack/mount/analysis/splitting.rb', line 34 def <<(key) super key.each_pair do |k, v| analyze_capture_boundaries(v, @boundaries[k] ||= Histogram.new) end end |
#clear ⇒ Object
29 30 31 32 |
# File 'lib/rack/mount/analysis/splitting.rb', line 29 def clear @boundaries = {} super end |
#process_key(requirements, method, requirement) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/rack/mount/analysis/splitting.rb', line 45 def process_key(requirements, method, requirement) separators = separators(method) if requirement.is_a?(Regexp) && separators.any? generate_split_keys(requirement, separators).each_with_index do |value, index| requirements[Key.new(method, index, Regexp.union(*separators))] = value end else super end end |
#separators(key) ⇒ Object
41 42 43 |
# File 'lib/rack/mount/analysis/splitting.rb', line 41 def separators(key) @boundaries[key].keys_in_upper_quartile end |