1 2#------------------------------------------------------------------------------ 3# $File: ruby,v 1.10 2019/07/21 09:40:17 christos Exp $ 4# ruby: file(1) magic for Ruby scripting language 5# URL: https://www.ruby-lang.org/ 6# From: Reuben Thomas <rrt@sc3d.org> 7 8# Ruby scripts 90 search/1/w #!\ /usr/bin/ruby Ruby script text executable 10!:strength + 15 11!:mime text/x-ruby 120 search/1/w #!\ /usr/local/bin/ruby Ruby script text executable 13!:strength + 15 14!:mime text/x-ruby 150 search/1 #!/usr/bin/env\ ruby Ruby script text executable 16!:strength + 15 17!:mime text/x-ruby 180 search/1 #!\ /usr/bin/env\ ruby Ruby script text executable 19!:strength + 15 20!:mime text/x-ruby 21 22# What looks like ruby, but does not have a shebang 23# (modules and such) 24# From: Lubomir Rintel <lkundrak@v3.sk> 250 search/8192 require 26>0 regex \^[[:space:]]*require[[:space:]]'[A-Za-z_/.]+' 27>>0 regex def\ [a-z]|\ do$ 28>>>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text 29!:strength + 30 30!:mime text/x-ruby 310 regex \^[[:space:]]*(class|module)[[:space:]][A-Z] 32>0 regex (modul|includ)e\ [A-Z]|def\ [a-z] 33>>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text 34!:strength + 30 35!:mime text/x-ruby 36# Classes with no modules or defs, beats simple ASCII 370 regex \^[[:space:]]*(class|module)[[:space:]][A-Z] 38>&0 regex \^[[:space:]]*end([[:space:]]+[;#if].*)?$ Ruby script text 39!:strength + 10 40!:mime text/x-ruby 41# Looks for function definition to balance python magic 42# def name (args) 43# end 440 search/8192 def\ 45>0 regex \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z] 46>>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text 47!:strength + 10 48!:mime text/x-ruby 49 500 search/8192 require 51>0 regex \^[[:space:]]*require[[:space:]]'[A-Za-z_/.]+' Ruby script text 52!:mime text/x-ruby 530 search/8192 include 54>0 regex \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+ Ruby script text 55!:mime text/x-ruby 56