A (slightly enhanced) implementation of TextMate's cmd-T lookup functionality, in Ruby, for embedding in other projects
Ruby
Latest commit d3bd275 Jul 27, 2014 @jamis gems.github.com is no more
Permalink
Failed to load latest commit information.
lib
.gitignore Added support for multiple search roots to FuzzyFileFinder, passed in… Oct 11, 2008
LICENSE initial commit Oct 9, 2008
Manifest initial commit Oct 9, 2008
README.rdoc gems.github.com is no more Jul 28, 2014
Rakefile initial commit Oct 9, 2008
fuzzy_file_finder.gemspec

README.rdoc

FuzzyFileFinder

FuzzyFileFinder is a (somewhat improved) implementation of TextMate's “cmd-T” functionality. It allows you to search for a file by specifying a pattern of characters that appear in that file's name. Unlike TextMate, FuzzyFileFinder also lets you match against the file's directory, so you can more easily scope your search.

FEATURES:

  • Quickly search directory trees for files

  • Avoids accidentally scanning huge directories by implementing a ceiling (default 10,000 entries)

  • Simple highlighting of matches to discover how a pattern matched

SYNOPSIS:

In a nutshell:

require 'fuzzy_file_finder'

finder = FuzzyFileFinder.new

finder.search "app/blogcon" do |match|
  puts "[%5d] %s" % [match[:score] * 10000, match[:highlighted_path]]
end

matches = finder.find("app/blogcon").sort_by { |m| [-m[:score], m[:path] }
matches.each do |match|
  puts "[%5d] %s" % [match[:score] * 10000, match[:highlighted_path]]
end

See FuzzyFileFinder for more documentation, and links to further information.

LICENSE:

All code, documentation, and related materials in this project are released into the PUBLIC DOMAIN. Usage, modification, and distribution are allowed without restriction.