mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Replace Language#find_by_filename with Pathname#language
This commit is contained in:
@@ -35,20 +35,6 @@ module Linguist
|
|||||||
@extension_index[extension]
|
@extension_index[extension]
|
||||||
end
|
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)
|
def self.find_by_lexer(lexer)
|
||||||
@lexer_index[lexer]
|
@lexer_index[lexer]
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -4,6 +4,24 @@ module Linguist
|
|||||||
@path = path
|
@path = path
|
||||||
end
|
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
|
def to_s
|
||||||
@path.dup
|
@path.dup
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -19,24 +19,6 @@ class TestLanguage < Test::Unit::TestCase
|
|||||||
assert_nil Language.find_by_extension('foo.rb')
|
assert_nil Language.find_by_extension('foo.rb')
|
||||||
end
|
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
|
def test_find_by_lexer
|
||||||
assert_equal Language['Perl'], Language.find_by_lexer('perl')
|
assert_equal Language['Perl'], Language.find_by_lexer('perl')
|
||||||
assert_equal Language['Python'], Language.find_by_lexer('python')
|
assert_equal Language['Python'], Language.find_by_lexer('python')
|
||||||
|
|||||||
@@ -8,4 +8,37 @@ class TestPathname < Test::Unit::TestCase
|
|||||||
def test_to_s
|
def test_to_s
|
||||||
assert_equal "file.rb", Pathname.new("file.rb").to_s
|
assert_equal "file.rb", Pathname.new("file.rb").to_s
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user