mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
Replace Language#find_by_filename with Pathname#language
This commit is contained in:
@@ -35,20 +35,6 @@ module Linguist
|
||||
@extension_index[extension]
|
||||
end
|
||||
|
||||
def self.find_by_filename(filename)
|
||||
basename = File.basename(filename)
|
||||
|
||||
if basename[0] == ?.
|
||||
ext = basename
|
||||
elsif basename.include?('.')
|
||||
ext = File.extname(basename)
|
||||
else
|
||||
ext = basename
|
||||
end
|
||||
|
||||
find_by_extension(ext)
|
||||
end
|
||||
|
||||
def self.find_by_lexer(lexer)
|
||||
@lexer_index[lexer]
|
||||
end
|
||||
|
||||
@@ -4,6 +4,24 @@ module Linguist
|
||||
@path = path
|
||||
end
|
||||
|
||||
def basename
|
||||
File.basename(@path)
|
||||
end
|
||||
|
||||
def extname
|
||||
if basename[0] == ?.
|
||||
basename
|
||||
elsif basename.include?('.')
|
||||
File.extname(basename)
|
||||
else
|
||||
basename
|
||||
end
|
||||
end
|
||||
|
||||
def language
|
||||
Language.find_by_extension(extname)
|
||||
end
|
||||
|
||||
def to_s
|
||||
@path.dup
|
||||
end
|
||||
|
||||
@@ -19,24 +19,6 @@ class TestLanguage < Test::Unit::TestCase
|
||||
assert_nil Language.find_by_extension('foo.rb')
|
||||
end
|
||||
|
||||
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')
|
||||
|
||||
assert_equal Language['Gentoo Ebuild'], Language.find_by_filename('file.ebuild')
|
||||
assert_equal Language['Python'], Language.find_by_filename('itty.py')
|
||||
assert_equal Language['Nu'], Language.find_by_filename('itty.nu')
|
||||
assert_nil Language.find_by_filename('defun.kt')
|
||||
end
|
||||
|
||||
def test_find_by_lexer
|
||||
assert_equal Language['Perl'], Language.find_by_lexer('perl')
|
||||
assert_equal Language['Python'], Language.find_by_lexer('python')
|
||||
|
||||
@@ -8,4 +8,37 @@ class TestPathname < Test::Unit::TestCase
|
||||
def test_to_s
|
||||
assert_equal "file.rb", Pathname.new("file.rb").to_s
|
||||
end
|
||||
|
||||
def test_basename
|
||||
assert_equal 'file.rb', Pathname.new("file.rb").basename
|
||||
assert_equal 'file.rb', Pathname.new("./file.rb").basename
|
||||
assert_equal 'file.rb', Pathname.new("sub/dir/file.rb").basename
|
||||
end
|
||||
|
||||
def test_extname
|
||||
assert_equal '.rb', Pathname.new(".rb").extname
|
||||
assert_equal '.rb', Pathname.new("file.rb").extname
|
||||
assert_equal '.rb', Pathname.new("./file.rb").extname
|
||||
assert_equal '.rb', Pathname.new("sub/dir/file.rb").extname
|
||||
|
||||
assert_equal 'Rakefile', Pathname.new("Rakefile").extname
|
||||
assert_equal 'Rakefile', Pathname.new("./Rakefile").extname
|
||||
assert_equal 'Rakefile', Pathname.new("vendor/Rakefile").extname
|
||||
end
|
||||
|
||||
def test_language
|
||||
assert_equal Language['Ruby'], Pathname.new(".rb").language
|
||||
assert_equal Language['Ruby'], Pathname.new("file.rb").language
|
||||
assert_equal Language['Ruby'], Pathname.new("./file.rb").language
|
||||
assert_equal Language['Ruby'], Pathname.new("sub/dir/file.rb").language
|
||||
|
||||
assert_equal Language['Ruby'], Pathname.new("Rakefile").language
|
||||
assert_equal Language['Ruby'], Pathname.new("vendor/Rakefile").language
|
||||
assert_equal Language['Ruby'], Pathname.new("./Rakefile").language
|
||||
|
||||
assert_equal Language['Gentoo Ebuild'], Pathname.new("file.ebuild").language
|
||||
assert_equal Language['Python'], Pathname.new("itty.py").language
|
||||
assert_equal Language['Nu'], Pathname.new("itty.nu").language
|
||||
assert_nil Pathname.new("defun.kt").language
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user