mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Deprecate find_by_shebang
This class doesn’t need to know about shebangs.
This commit is contained in:
		| @@ -199,18 +199,9 @@ module Linguist | |||||||
|       @extension_index[extname] |       @extension_index[extname] | ||||||
|     end |     end | ||||||
|  |  | ||||||
|     # Public: Look up Languages by shebang line. |     # DEPRECATED | ||||||
|     # |  | ||||||
|     # data - Array of tokens or String data to analyze. |  | ||||||
|     # |  | ||||||
|     # Examples |  | ||||||
|     # |  | ||||||
|     #   Language.find_by_shebang("#!/bin/bash\ndate;") |  | ||||||
|     #   # => [#<Language name="Bash">] |  | ||||||
|     # |  | ||||||
|     # Returns the matching Language |  | ||||||
|     def self.find_by_shebang(data) |     def self.find_by_shebang(data) | ||||||
|       @interpreter_index[Linguist.interpreter_from_shebang(data)] |       @interpreter_index[Shebang.interpreter(data)] | ||||||
|     end |     end | ||||||
|  |  | ||||||
|     # Public: Look up Languages by interpreter. |     # Public: Look up Languages by interpreter. | ||||||
|   | |||||||
| @@ -223,34 +223,21 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|     assert_equal [Language['Chapel']], Language.find_by_filename('examples/hello.chpl') |     assert_equal [Language['Chapel']], Language.find_by_filename('examples/hello.chpl') | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def test_find_by_shebang |   def test_find_by_interpreter | ||||||
|     assert_equal 'ruby', Linguist.interpreter_from_shebang("#!/usr/bin/ruby\n# baz") |     { | ||||||
|     { []         => ["", |       "ruby" => "Ruby", | ||||||
|                      "foo", |       "Rscript" => "R", | ||||||
|                      "#bar", |       "sh" => "Shell", | ||||||
|                      "#baz", |       "bash" => "Shell", | ||||||
|                      "///", |       "python" => "Python", | ||||||
|                      "\n\n\n\n\n", |       "python2" => "Python", | ||||||
|                      " #!/usr/sbin/ruby", |       "python3" => "Python", | ||||||
|                      "\n#!/usr/sbin/ruby"], |       "sbcl" => "Common Lisp" | ||||||
|       ['Ruby']   => ["#!/usr/bin/env ruby\n# baz", |     }.each do |interpreter, language| | ||||||
|                      "#!/usr/sbin/ruby\n# bar", |       assert_equal [Language[language]], Language.find_by_interpreter(interpreter) | ||||||
|                      "#!/usr/bin/ruby\n# foo", |  | ||||||
|                      "#!/usr/sbin/ruby", |  | ||||||
|                      "#!/usr/sbin/ruby foo bar baz\n"], |  | ||||||
|       ['R']      => ["#!/usr/bin/env Rscript\n# example R script\n#\n"], |  | ||||||
|       ['Shell']  => ["#!/usr/bin/bash\n", "#!/bin/sh"], |  | ||||||
|       ['Python'] => ["#!/bin/python\n# foo\n# bar\n# baz", |  | ||||||
|                      "#!/usr/bin/python2.7\n\n\n\n", |  | ||||||
|                      "#!/usr/bin/python3\n\n\n\n"], |  | ||||||
|       ["Common Lisp"] => ["#!/usr/bin/sbcl --script\n\n"] |  | ||||||
|     }.each do |languages, bodies| |  | ||||||
|       bodies.each do |body| |  | ||||||
|         assert_equal([body, languages.map{|l| Language[l]}], |  | ||||||
|                      [body, Language.find_by_shebang(body)]) |  | ||||||
|  |  | ||||||
|       end |  | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  |     assert_equal [], Language.find_by_interpreter(nil) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def test_find |   def test_find | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user