From 9020d7c04465acfdf1057b0602483c967486e7ad Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 27 Nov 2014 13:18:51 -0500 Subject: [PATCH] Deprecate find_by_shebang MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This class doesn’t need to know about shebangs. --- lib/linguist/language.rb | 13 ++----------- test/test_language.rb | 41 ++++++++++++++-------------------------- 2 files changed, 16 insertions(+), 38 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 7c51ae9d..75e25606 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -199,18 +199,9 @@ module Linguist @extension_index[extname] end - # Public: Look up Languages by shebang line. - # - # data - Array of tokens or String data to analyze. - # - # Examples - # - # Language.find_by_shebang("#!/bin/bash\ndate;") - # # => [#] - # - # Returns the matching Language + # DEPRECATED def self.find_by_shebang(data) - @interpreter_index[Linguist.interpreter_from_shebang(data)] + @interpreter_index[Shebang.interpreter(data)] end # Public: Look up Languages by interpreter. diff --git a/test/test_language.rb b/test/test_language.rb index c5c5255f..9a7498d1 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -223,34 +223,21 @@ class TestLanguage < Test::Unit::TestCase assert_equal [Language['Chapel']], Language.find_by_filename('examples/hello.chpl') end - def test_find_by_shebang - assert_equal 'ruby', Linguist.interpreter_from_shebang("#!/usr/bin/ruby\n# baz") - { [] => ["", - "foo", - "#bar", - "#baz", - "///", - "\n\n\n\n\n", - " #!/usr/sbin/ruby", - "\n#!/usr/sbin/ruby"], - ['Ruby'] => ["#!/usr/bin/env ruby\n# baz", - "#!/usr/sbin/ruby\n# bar", - "#!/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 + def test_find_by_interpreter + { + "ruby" => "Ruby", + "Rscript" => "R", + "sh" => "Shell", + "bash" => "Shell", + "python" => "Python", + "python2" => "Python", + "python3" => "Python", + "sbcl" => "Common Lisp" + }.each do |interpreter, language| + assert_equal [Language[language]], Language.find_by_interpreter(interpreter) end + + assert_equal [], Language.find_by_interpreter(nil) end def test_find