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