xref: /dflybsd-src/contrib/file/magic/Magdir/ruby (revision 6fca56fb90a257291c53bba3b861b751027c3e3d)
1f72f8299SJan Lentfer
279343712SPeter Avalos#------------------------------------------------------------------------------
36fca56fbSSascha Wildner# $File: ruby,v 1.10 2019/07/21 09:40:17 christos Exp $
4f72f8299SJan Lentfer# ruby:  file(1) magic for Ruby scripting language
56fca56fbSSascha Wildner# URL:  https://www.ruby-lang.org/
679343712SPeter Avalos# From: Reuben Thomas <rrt@sc3d.org>
779343712SPeter Avalos
879343712SPeter Avalos# Ruby scripts
9f72f8299SJan Lentfer0	search/1/w	#!\ /usr/bin/ruby				Ruby script text executable
10*c30bd091SSascha Wildner!:strength + 15
11f72f8299SJan Lentfer!:mime text/x-ruby
12f72f8299SJan Lentfer0	search/1/w	#!\ /usr/local/bin/ruby	Ruby script text executable
13*c30bd091SSascha Wildner!:strength + 15
14f72f8299SJan Lentfer!:mime text/x-ruby
1579343712SPeter Avalos0	search/1	#!/usr/bin/env\ ruby				Ruby script text executable
16*c30bd091SSascha Wildner!:strength + 15
17f72f8299SJan Lentfer!:mime text/x-ruby
1879343712SPeter Avalos0	search/1	#!\ /usr/bin/env\ ruby			Ruby script text executable
19*c30bd091SSascha Wildner!:strength + 15
20f72f8299SJan Lentfer!:mime text/x-ruby
21e4d4ce0cSPeter Avalos
22e4d4ce0cSPeter Avalos# What looks like ruby, but does not have a shebang
23e4d4ce0cSPeter Avalos# (modules and such)
24e4d4ce0cSPeter Avalos# From: Lubomir Rintel <lkundrak@v3.sk>
256fca56fbSSascha Wildner0	search/8192	require
266fca56fbSSascha Wildner>0	regex		\^[[:space:]]*require[[:space:]]'[A-Za-z_/.]+'
276fca56fbSSascha Wildner>>0	regex		def\ [a-z]|\ do$
286fca56fbSSascha Wildner>>>&0	regex		\^[[:space:]]*end([[:space:]]+[;#].*)?$		Ruby script text
29*c30bd091SSascha Wildner!:strength + 30
30e4d4ce0cSPeter Avalos!:mime	text/x-ruby
31*c30bd091SSascha Wildner0	regex		\^[[:space:]]*(class|module)[[:space:]][A-Z]
32e4d4ce0cSPeter Avalos>0	regex		(modul|includ)e\ [A-Z]|def\ [a-z]
33*c30bd091SSascha Wildner>>&0	regex		\^[[:space:]]*end([[:space:]]+[;#].*)?$		Ruby script text
34*c30bd091SSascha Wildner!:strength + 30
35*c30bd091SSascha Wildner!:mime	text/x-ruby
36*c30bd091SSascha Wildner# Classes with no modules or defs, beats simple ASCII
37*c30bd091SSascha Wildner0	regex		\^[[:space:]]*(class|module)[[:space:]][A-Z]
38*c30bd091SSascha Wildner>&0	regex	\^[[:space:]]*end([[:space:]]+[;#if].*)?$		Ruby script text
39*c30bd091SSascha Wildner!:strength + 10
40*c30bd091SSascha Wildner!:mime	text/x-ruby
41*c30bd091SSascha Wildner# Looks for function definition to balance python magic
42*c30bd091SSascha Wildner# def name (args)
43*c30bd091SSascha Wildner# end
446fca56fbSSascha Wildner0	search/8192	def\
456fca56fbSSascha Wildner>0	regex		\^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
466fca56fbSSascha Wildner>>&0	regex		\^[[:space:]]*end([[:space:]]+[;#].*)?$		Ruby script text
47*c30bd091SSascha Wildner!:strength + 10
48*c30bd091SSascha Wildner!:mime	text/x-ruby
49*c30bd091SSascha Wildner
506fca56fbSSascha Wildner0	search/8192	require
516fca56fbSSascha Wildner>0	regex		\^[[:space:]]*require[[:space:]]'[A-Za-z_/.]+'	Ruby script text
52*c30bd091SSascha Wildner!:mime	text/x-ruby
536fca56fbSSascha Wildner0	search/8192	include
546fca56fbSSascha Wildner>0 regex 	\^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+	Ruby script text
55e4d4ce0cSPeter Avalos!:mime	text/x-ruby
56