module

Noir::FileExtension

Case folding for the extensions of stacks written on case-insensitive Windows/IIS filesystems, where LOGIN.ASP, P.ASPX and A.PHP are the same pages as their lower-case spellings and routinely show up that way in checkouts.

Deliberately a closed list, not every extension: elsewhere case is meaningful — .C/.H are C++ next to C's .c/.h, Makefile.PL is a Perl build script rather than a .pl source, and .R already has its own spelling in the R analyzer.

Constants

CASE_INSENSITIVE = Set {".asp", ".asa", ".aspx", ".asmx", ".ashx", ".ascx", ".master", ".svc", ".cs", ".csproj", ".cshtml", ".razor", ".vb", ".vbproj", ".vbhtml", ".cfm", ".cfc", ".cfml", ".php"}

Class methods

fold(path : String) : String

path with its extension lower-cased when that extension is a CASE_INSENSITIVE one spelled with upper-case letters; otherwise path itself, without allocating.

Source
index_key(extension : String) : String

The key File.extname results are indexed and looked up under.

Source