Class: Prj::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/prj/filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(letters, case_sensitive = true) ⇒ Filter

Returns a new instance of Filter.



7
8
9
10
# File 'lib/prj/filter.rb', line 7

def initialize(letters, case_sensitive = true)
  @letters = letters.to_a
  @case_sensitive = case_sensitive
end

Instance Method Details

#distance(dir) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/prj/filter.rb', line 16

def distance(dir)
  scanner = StringScanner.new(dir)
  @letters.each do |letter|
    regexp = Regexp.new(".*?[#{letter}]", !@case_sensitive)
    scanner.scan(regexp) or return :no_score
  end
  scanner.pos - @letters.length
end

#filter(directories) ⇒ Object



12
13
14
# File 'lib/prj/filter.rb', line 12

def filter(directories)
  wrapped_with_score(directories).sort.map(&:to_s)
end