Skip to content

Commit e1e6a6a

Browse files
committed
additional Ruby files types
Ruby seems to have no shortage of these specially named files.
1 parent 64ca2ae commit e1e6a6a

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

lib/coderay/helpers/file_type.rb

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module CodeRay
2-
2+
33
# = FileType
44
#
55
# A simple filetype recognizer.
@@ -8,18 +8,18 @@ module CodeRay
88
#
99
# # determine the type of the given
1010
# lang = FileType[file_name]
11-
#
11+
#
1212
# # return :text if the file type is unknown
1313
# lang = FileType.fetch file_name, :text
14-
#
14+
#
1515
# # try the shebang line, too
1616
# lang = FileType.fetch file_name, :text, true
1717
module FileType
18-
18+
1919
UnknownFileType = Class.new Exception
20-
20+
2121
class << self
22-
22+
2323
# Try to determine the file type of the file.
2424
#
2525
# +filename+ is a relative or absolute path to a file.
@@ -30,7 +30,7 @@ def [] filename, read_shebang = false
3030
name = File.basename filename
3131
ext = File.extname(name).sub(/^\./, '') # from last dot, delete the leading dot
3232
ext2 = filename.to_s[/\.(.*)/, 1] # from first dot
33-
33+
3434
type =
3535
TypeFromExt[ext] ||
3636
TypeFromExt[ext.downcase] ||
@@ -39,10 +39,10 @@ def [] filename, read_shebang = false
3939
TypeFromName[name] ||
4040
TypeFromName[name.downcase]
4141
type ||= shebang(filename) if read_shebang
42-
42+
4343
type
4444
end
45-
45+
4646
# This works like Hash#fetch.
4747
#
4848
# If the filetype cannot be found, the +default+ value
@@ -51,7 +51,7 @@ def fetch filename, default = nil, read_shebang = false
5151
if default && block_given?
5252
warn 'Block supersedes default value argument; use either.'
5353
end
54-
54+
5555
if type = self[filename, read_shebang]
5656
type
5757
else
@@ -60,9 +60,9 @@ def fetch filename, default = nil, read_shebang = false
6060
raise UnknownFileType, 'Could not determine type of %p.' % filename
6161
end
6262
end
63-
63+
6464
protected
65-
65+
6666
def shebang filename
6767
return unless File.exist? filename
6868
File.open filename, 'r' do |f|
@@ -73,9 +73,9 @@ def shebang filename
7373
end
7474
end
7575
end
76-
76+
7777
end
78-
78+
7979
TypeFromExt = {
8080
'c' => :c,
8181
'cfc' => :xml,
@@ -116,7 +116,7 @@ def shebang filename
116116
'rhtml' => :erb,
117117
'rjs' => :ruby,
118118
'rpdf' => :ruby,
119-
'ru' => :ruby,
119+
'ru' => :ruby, # config.ru
120120
'rxml' => :ruby,
121121
'sass' => :sass,
122122
'sql' => :sql,
@@ -132,16 +132,19 @@ def shebang filename
132132
for cpp_alias in %w[cc cpp cp cxx c++ C hh hpp h++ cu]
133133
TypeFromExt[cpp_alias] = :cpp
134134
end
135-
135+
136136
TypeFromShebang = /\b(?:ruby|perl|python|sh)\b/
137-
137+
138138
TypeFromName = {
139139
'Capfile' => :ruby,
140140
'Rakefile' => :ruby,
141141
'Rantfile' => :ruby,
142142
'Gemfile' => :ruby,
143+
'Guardfile' => :ruby,
144+
'Vagrantfile' => :ruby,
145+
'Appraisals' => :ruby
143146
}
144-
147+
145148
end
146-
149+
147150
end

0 commit comments

Comments
 (0)