2 #------------------------------------------------------------------------------
3 # $File: ruby,v 1.7 2017/08/14 13:39:18 christos Exp $
4 # ruby: file(1) magic for Ruby scripting language
5 # URL: http://www.ruby-lang.org/
6 # From: Reuben Thomas <rrt@sc3d.org>
9 0 search/1/w #!\ /usr/bin/ruby Ruby script text executable
12 0 search/1/w #!\ /usr/local/bin/ruby Ruby script text executable
15 0 search/1 #!/usr/bin/env\ ruby Ruby script text executable
18 0 search/1 #!\ /usr/bin/env\ ruby Ruby script text executable
22 # What looks like ruby, but does not have a shebang
24 # From: Lubomir Rintel <lkundrak@v3.sk>
25 0 regex \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
26 >0 regex def\ [a-z]|\ do$
27 >>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
30 0 regex \^[[:space:]]*(class|module)[[:space:]][A-Z]
31 >0 regex (modul|includ)e\ [A-Z]|def\ [a-z]
32 >>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
35 # Classes with no modules or defs, beats simple ASCII
36 0 regex \^[[:space:]]*(class|module)[[:space:]][A-Z]
37 >&0 regex \^[[:space:]]*end([[:space:]]+[;#if].*)?$ Ruby script text
40 # Looks for function definition to balance python magic
43 0 regex \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
44 >&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
48 0 regex \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+' Ruby script text
50 0 regex \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+ Ruby script text