Extract a separate method for find_by_filename

This commit is contained in:
Joshua Peek
2011-05-09 23:06:58 -05:00
parent fdc8f18c52
commit 09618cfed5
2 changed files with 19 additions and 9 deletions

View File

@@ -26,7 +26,11 @@ module Linguist
@name_index[name.downcase]
end
def self.find_by_extension(filename)
def self.find_by_extension(extension)
@extension_index[extension]
end
def self.find_by_filename(filename)
basename = File.basename(filename)
if basename[0] == ?.
@@ -37,7 +41,7 @@ module Linguist
ext = basename
end
@extension_index[ext]
find_by_extension(ext)
end
attr_reader :name, :extensions

View File

@@ -16,14 +16,20 @@ class TestLanguage < Test::Unit::TestCase
ruby = Language['Ruby']
assert_equal ruby, Language.find_by_extension('.rb')
assert_equal ruby, Language.find_by_extension('rb')
assert_equal ruby, Language.find_by_extension('foo.rb')
assert_equal ruby, Language.find_by_extension('./foo.rb')
assert_equal ruby, Language.find_by_extension('foo/bar.rb')
assert_nil Language.find_by_extension('foo.rb')
end
# TODO: Review questionable usage
assert_equal ruby, Language.find_by_extension('Rakefile')
assert_equal ruby, Language.find_by_extension('vendor/Rakefile')
assert_equal ruby, Language.find_by_extension('./Rakefile')
def test_find_by_filename
ruby = Language['Ruby']
assert_equal ruby, Language.find_by_filename('.rb')
assert_equal ruby, Language.find_by_filename('rb')
assert_equal ruby, Language.find_by_filename('foo.rb')
assert_equal ruby, Language.find_by_filename('./foo.rb')
assert_equal ruby, Language.find_by_filename('foo/bar.rb')
assert_equal ruby, Language.find_by_filename('Rakefile')
assert_equal ruby, Language.find_by_filename('vendor/Rakefile')
assert_equal ruby, Language.find_by_filename('./Rakefile')
end
def test_name