Imported Upstream version 5.32
[platform/upstream/file.git] / magic / Magdir / ruby
index 6468c4a..45a253c 100644 (file)
@@ -1,32 +1,51 @@
 
 #------------------------------------------------------------------------------
-# $File: ruby,v 1.5 2010/07/21 16:47:17 christos Exp $
+# $File: ruby,v 1.7 2017/08/14 13:39:18 christos Exp $
 # ruby:  file(1) magic for Ruby scripting language
 # URL:  http://www.ruby-lang.org/
 # From: Reuben Thomas <rrt@sc3d.org>
 
 # Ruby scripts
-0      search/1/w      #!\ /usr/bin/ruby       Ruby script text executable
+0      search/1/w      #!\ /usr/bin/ruby                               Ruby script text executable
 !:strength + 15
 !:mime text/x-ruby
 0      search/1/w      #!\ /usr/local/bin/ruby Ruby script text executable
 !:strength + 15
 !:mime text/x-ruby
-0      search/1        #!/usr/bin/env\ ruby    Ruby script text executable
+0      search/1        #!/usr/bin/env\ ruby                            Ruby script text executable
 !:strength + 15
 !:mime text/x-ruby
-0      search/1        #!\ /usr/bin/env\ ruby  Ruby script text executable
+0      search/1        #!\ /usr/bin/env\ ruby                  Ruby script text executable
 !:strength + 15
 !:mime text/x-ruby
 
 # What looks like ruby, but does not have a shebang
 # (modules and such)
 # From: Lubomir Rintel <lkundrak@v3.sk>
-0      regex           \^[\ \t]*require[\ \t]'[A-Za-z_/]+'
->0     regex           include\ [A-Z]|def\ [a-z]|\ do$
->>0    regex           \^[\ \t]*end([\ \t]*[;#].*)?$           Ruby script text
+0      regex           \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
+>0     regex           def\ [a-z]|\ do$
+>>&0   regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+!:strength + 30
 !:mime text/x-ruby
-0      regex           \^[\ \t]*(class|module)[\ \t][A-Z]
+0      regex           \^[[:space:]]*(class|module)[[:space:]][A-Z]
 >0     regex           (modul|includ)e\ [A-Z]|def\ [a-z]
->>0    regex           \^[\ \t]*end([\ \t]*[;#].*)?$           Ruby module source text
+>>&0   regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+!:strength + 30
+!:mime text/x-ruby
+# Classes with no modules or defs, beats simple ASCII
+0      regex           \^[[:space:]]*(class|module)[[:space:]][A-Z]
+>&0    regex   \^[[:space:]]*end([[:space:]]+[;#if].*)?$               Ruby script text
+!:strength + 10
+!:mime text/x-ruby
+# Looks for function definition to balance python magic
+# def name (args)
+# end
+0      regex           \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
+>&0    regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+!:strength + 10
+!:mime text/x-ruby
+
+0      regex           \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'   Ruby script text
+!:mime text/x-ruby
+0 regex        \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+      Ruby script text
 !:mime text/x-ruby