Class: Prj::Filter
- Inherits:
-
Object
- Object
- Prj::Filter
- Defined in:
- lib/prj/filter.rb
Instance Method Summary collapse
- #distance(dir) ⇒ Object
- #filter(directories) ⇒ Object
-
#initialize(letters, case_sensitive = true) ⇒ Filter
constructor
A new instance of Filter.
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 |