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] | ||||
|     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