xref: /freebsd/contrib/file/magic/Magdir/ruby (revision 44e86fbdcf5a3e625095652a3d0ab99532e54eea)
1b6cee71dSXin LI
2b6cee71dSXin LI#------------------------------------------------------------------------------
3*d38c30c0SXin LI# $File: ruby,v 1.10 2019/07/21 09:40:17 christos Exp $
4b6cee71dSXin LI# ruby:  file(1) magic for Ruby scripting language
548c779cdSXin LI# URL:  https://www.ruby-lang.org/
6b6cee71dSXin LI# From: Reuben Thomas <rrt@sc3d.org>
7b6cee71dSXin LI
8b6cee71dSXin LI# Ruby scripts
9b6cee71dSXin LI0	search/1/w	#!\ /usr/bin/ruby				Ruby script text executable
10a5d223e6SXin LI!:strength + 15
11b6cee71dSXin LI!:mime text/x-ruby
12b6cee71dSXin LI0	search/1/w	#!\ /usr/local/bin/ruby	Ruby script text executable
13a5d223e6SXin LI!:strength + 15
14b6cee71dSXin LI!:mime text/x-ruby
15b6cee71dSXin LI0	search/1	#!/usr/bin/env\ ruby				Ruby script text executable
16a5d223e6SXin LI!:strength + 15
17b6cee71dSXin LI!:mime text/x-ruby
18b6cee71dSXin LI0	search/1	#!\ /usr/bin/env\ ruby			Ruby script text executable
19a5d223e6SXin LI!:strength + 15
20b6cee71dSXin LI!:mime text/x-ruby
21b6cee71dSXin LI
22b6cee71dSXin LI# What looks like ruby, but does not have a shebang
23b6cee71dSXin LI# (modules and such)
24b6cee71dSXin LI# From: Lubomir Rintel <lkundrak@v3.sk>
2548c779cdSXin LI0	search/8192	require
26*d38c30c0SXin LI>0	regex		\^[[:space:]]*require[[:space:]]'[A-Za-z_/.]+'
2748c779cdSXin LI>>0	regex		def\ [a-z]|\ do$
2848c779cdSXin LI>>>&0	regex		\^[[:space:]]*end([[:space:]]+[;#].*)?$		Ruby script text
2940427ccaSGordon Tetlow!:strength + 30
30b6cee71dSXin LI!:mime	text/x-ruby
3140427ccaSGordon Tetlow0	regex		\^[[:space:]]*(class|module)[[:space:]][A-Z]
32b6cee71dSXin LI>0	regex		(modul|includ)e\ [A-Z]|def\ [a-z]
3340427ccaSGordon Tetlow>>&0	regex		\^[[:space:]]*end([[:space:]]+[;#].*)?$		Ruby script text
3440427ccaSGordon Tetlow!:strength + 30
3540427ccaSGordon Tetlow!:mime	text/x-ruby
3640427ccaSGordon Tetlow# Classes with no modules or defs, beats simple ASCII
3740427ccaSGordon Tetlow0	regex		\^[[:space:]]*(class|module)[[:space:]][A-Z]
3840427ccaSGordon Tetlow>&0	regex	\^[[:space:]]*end([[:space:]]+[;#if].*)?$		Ruby script text
3940427ccaSGordon Tetlow!:strength + 10
4040427ccaSGordon Tetlow!:mime	text/x-ruby
4140427ccaSGordon Tetlow# Looks for function definition to balance python magic
4240427ccaSGordon Tetlow# def name (args)
4340427ccaSGordon Tetlow# end
4448c779cdSXin LI0	search/8192	def\
4548c779cdSXin LI>0	regex		\^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
4648c779cdSXin LI>>&0	regex		\^[[:space:]]*end([[:space:]]+[;#].*)?$		Ruby script text
4740427ccaSGordon Tetlow!:strength + 10
4840427ccaSGordon Tetlow!:mime	text/x-ruby
4940427ccaSGordon Tetlow
5048c779cdSXin LI0	search/8192	require
51*d38c30c0SXin LI>0	regex		\^[[:space:]]*require[[:space:]]'[A-Za-z_/.]+'	Ruby script text
5240427ccaSGordon Tetlow!:mime	text/x-ruby
5348c779cdSXin LI0	search/8192	include
5448c779cdSXin LI>0 regex 	\^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+	Ruby script text
55b6cee71dSXin LI!:mime	text/x-ruby
56