Class: CodeQualia::PatternExpander
- Inherits:
-
Object
- Object
- CodeQualia::PatternExpander
- Defined in:
- lib/code_qualia/pattern_expander.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.expand_brace_patterns(pattern) ⇒ Object
8 9 10 |
# File 'lib/code_qualia/pattern_expander.rb', line 8 def self.(pattern) new.(pattern) end |
.extract_base_directories(patterns) ⇒ Object
35 36 37 |
# File 'lib/code_qualia/pattern_expander.rb', line 35 def self.extract_base_directories(patterns) new.extract_base_directories(patterns) end |
Instance Method Details
#expand_brace_patterns(pattern) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/code_qualia/pattern_expander.rb', line 12 def (pattern) parts = pattern.split('{', 2) return [pattern] unless parts.length == 2 prefix = parts[0] suffix_and_rest = parts[1].split('}', 2) return [pattern] unless suffix_and_rest.length == 2 = suffix_and_rest[0].split(',') suffix = suffix_and_rest[1] = [] .each do |option| = "#{prefix}#{option}#{suffix}" if .include?('{') && .include?('}') .concat(()) else << end end end |
#extract_base_directories(patterns) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/code_qualia/pattern_expander.rb', line 39 def extract_base_directories(patterns) directories = Set.new Array(patterns).each do |pattern| = if pattern.include?('{') && pattern.include?('}') (pattern) else [pattern] end .each do || base_dirs = extract_base_directory_from_pattern() # Handle both single directory (string) and multiple directories (array) base_dirs = Array(base_dirs) base_dirs.each do |base_dir| directories.add("#{base_dir}/") if base_dir && !base_dir.empty? end end end directories.to_a end |