Class: Linguist::Strategy::Manpage

Inherits:
Object
  • Object
show all
Defined in:
lib/linguist/strategy/manpage.rb

Overview

Detects man pages based on numeric file extensions with group suffixes.

Constant Summary collapse

MANPAGE_EXTS =

Public: RegExp for matching conventional manpage extensions

This is the same expression as that used by ‘github/markup`

/\.(?:[1-9](?![0-9])[a-z_0-9]*|0p|n|man|mdoc)(?:\.in)?$/i

Class Method Summary collapse

Class Method Details

.call(blob, candidates = []) ⇒ Object

Public: Use the file extension to match a possible man page, only if no other candidates were previously identified.

blob - An object that quacks like a blob. candidates - A list of candidate languages.

Examples

Manpage.call(FileBlob.new("path/to/file"))

Returns:

1. The list of candidates if it wasn't empty
2. An array of ["Roff", "Roff Manpage"] if the file's
   extension matches a valid-looking man(1) section
3. An empty Array for anything else


27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/linguist/strategy/manpage.rb', line 27

def self.call(blob, candidates = [])
  return candidates if candidates.any?

  if blob.name =~ MANPAGE_EXTS
    return [
      Language["Roff Manpage"],
      Language["Roff"],
      # Language["Text"] TODO: Uncomment once #4258 gets merged
    ];
  end

  []
end