module CodeRay::FileType
def [] filename, read_shebang = false
The file itself is only accessed when +read_shebang+ is set to true.
+filename+ is a relative or absolute path to a file.
Try to determine the file type of the file.
def [] filename, read_shebang = false name = File.basename filename ext = File.extname(name).sub(/^\./, '') # from last dot, delete the leading dot ext2 = filename.to_s[/\.(.*)/, 1] # from first dot type = TypeFromExt[ext] || TypeFromExt[ext.downcase] || (TypeFromExt[ext2] if ext2) || (TypeFromExt[ext2.downcase] if ext2) || TypeFromName[name] || TypeFromName[name.downcase] type ||= shebang(filename) if read_shebang type end