class RuboCop::OptimizedPatterns::PatternsSet
A wrapper around patterns array to perform optimized search. @api private
Public Class Methods
new(patterns)
click to toggle source
# File lib/rubocop/optimized_patterns.rb, line 9 def initialize(patterns) @strings = Set.new @patterns = [] partition_patterns(patterns) end
Public Instance Methods
match?(path)
click to toggle source
# File lib/rubocop/optimized_patterns.rb, line 15 def match?(path) @strings.include?(path) || @patterns.any? { |pattern| PathUtil.match_path?(pattern, path) } end
Private Instance Methods
partition_patterns(patterns)
click to toggle source
# File lib/rubocop/optimized_patterns.rb, line 21 def partition_patterns(patterns) patterns.each do |pattern| if pattern.is_a?(String) && !pattern.match?(/[*{\[?]/) @strings << pattern else @patterns << pattern end end end