mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Return nil if no Language if found
This commit is contained in:
		| @@ -222,9 +222,9 @@ module Linguist | ||||
|     # | ||||
|     # Return true or false | ||||
|     def indexable? | ||||
|       if !text? | ||||
|       if binary? | ||||
|         false | ||||
|       elsif !language? | ||||
|       elsif language.nil? | ||||
|         false | ||||
|       elsif !language.searchable? | ||||
|         false | ||||
| @@ -241,50 +241,36 @@ module Linguist | ||||
|     # | ||||
|     # May load Blob#data | ||||
|     # | ||||
|     # Returns a Language object | ||||
|     # Returns a Language or nil if none is detected | ||||
|     def language | ||||
|       guess_language || Language['Text'] | ||||
|       if defined? @language | ||||
|         @language | ||||
|       else | ||||
|         @language = guess_language | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     # Internal: Guess language | ||||
|     # | ||||
|     # Returns a Language or nil | ||||
|     def guess_language | ||||
|       if text? | ||||
|         # If its a header file (.h) try to guess the language | ||||
|         if language = header_language | ||||
|           language | ||||
|       return if binary? | ||||
|  | ||||
|       # If its a header file (.h) try to guess the language | ||||
|       header_language || | ||||
|  | ||||
|         # See if there is a Language for the extension | ||||
|         elsif language = pathname.language | ||||
|           language | ||||
|         pathname.language || | ||||
|  | ||||
|         # Try to detect Language from shebang line | ||||
|         elsif language = shebang_language | ||||
|           language | ||||
|  | ||||
|         else | ||||
|           nil | ||||
|         end | ||||
|       else | ||||
|         nil | ||||
|       end | ||||
|         shebang_language | ||||
|     end | ||||
|  | ||||
|     # Internal: Has a language. | ||||
|     # | ||||
|     # Will return false if language was guessed to be Text. | ||||
|     # | ||||
|     # Returns true or false. | ||||
|     def language? | ||||
|       guess_language ? true : false | ||||
|     end | ||||
|  | ||||
|     # Deprecated: Get the lexer of the blob. | ||||
|     # Internal: Get the lexer of the blob. | ||||
|     # | ||||
|     # Returns a Lexer. | ||||
|     def lexer | ||||
|       language.lexer | ||||
|       language ? language.lexer : Lexer['Text only'] | ||||
|     end | ||||
|  | ||||
|     # Internal: Guess language of header files (.h). | ||||
| @@ -350,8 +336,7 @@ module Linguist | ||||
|     # Returns the Language or nil | ||||
|     def shebang_language | ||||
|       if script = shebang_script | ||||
|         lang = Language[script] | ||||
|         lang != Language['Text'] ? lang : nil | ||||
|         Language[script] | ||||
|       end | ||||
|     end | ||||
|  | ||||
|   | ||||
| @@ -91,7 +91,7 @@ module Linguist | ||||
|         language = blob.language | ||||
|  | ||||
|         # Only include common langauges | ||||
|         if language.common? | ||||
|         if language && language.common? | ||||
|           @sizes[language] += blob.size | ||||
|         end | ||||
|       end | ||||
|   | ||||
| @@ -222,7 +222,7 @@ class TestBlob < Test::Unit::TestCase | ||||
|     assert_equal Language['Ruby'],        blob("foo.rb").language | ||||
|     assert_equal Language['Ruby'],        blob("script.rb").language | ||||
|     assert_equal Language['Ruby'],        blob("wrong_shebang.rb").language | ||||
|     assert_equal Language['Text'],        blob("octocat.png").language | ||||
|     assert_nil blob("octocat.png").language | ||||
|  | ||||
|     # ML | ||||
|     assert_equal Language['OCaml'],       blob("Foo.ml").language | ||||
| @@ -240,7 +240,7 @@ class TestBlob < Test::Unit::TestCase | ||||
|     assert_equal Language['VimL'],  blob(".vimrc").language | ||||
|     assert_equal Language['YAML'],  blob(".gemrc").language | ||||
|  | ||||
|     assert_equal Language['Text'], blob("README").language | ||||
|     assert_nil blob("README").language | ||||
|  | ||||
|     # https://github.com/xquery/xprocxq/blob/master/src/xquery/xproc.xqm | ||||
|     assert_equal Language['XQuery'], blob("xproc.xqm").language | ||||
|   | ||||
		Reference in New Issue
	
	Block a user