Sha256: b50b47e3b1bf981609791537e69130a7bb1aa7c4fedd0d826d991f9d7146d03c

Contents?: true

Size: 1.28 KB

Versions: 36

Compression:

Stored size: 1.28 KB

Contents

module Linguist
  module Strategy
    # Detects man pages based on numeric file extensions with group suffixes.
    class Manpage

      # Public: RegExp for matching conventional manpage extensions
      #
      # This is the same expression as that used by `github/markup`
      MANPAGE_EXTS = /\.(?:[1-9](?![0-9])[a-z_0-9]*|0p|n|man|mdoc)(?:\.in)?$/i

      # 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
      #
      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
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
github-linguist-9.1.0 lib/linguist/strategy/manpage.rb
github-linguist-9.0.0 lib/linguist/strategy/manpage.rb
github-linguist-8.0.1 lib/linguist/strategy/manpage.rb
github-linguist-8.0.0 lib/linguist/strategy/manpage.rb
github-linguist-7.30.0 lib/linguist/strategy/manpage.rb
github-linguist-7.29.0 lib/linguist/strategy/manpage.rb
github-linguist-7.28.0 lib/linguist/strategy/manpage.rb
github-linguist-7.27.0 lib/linguist/strategy/manpage.rb
github-linguist-7.26.0 lib/linguist/strategy/manpage.rb
github-linguist-7.25.0 lib/linguist/strategy/manpage.rb
github-linguist-7.24.1 lib/linguist/strategy/manpage.rb
github-linguist-7.24.0 lib/linguist/strategy/manpage.rb
github-linguist-7.23.0 lib/linguist/strategy/manpage.rb
github-linguist-7.22.1 lib/linguist/strategy/manpage.rb
github-linguist-7.22.0 lib/linguist/strategy/manpage.rb
github-linguist-7.21.0 lib/linguist/strategy/manpage.rb
github-linguist-7.20.0 lib/linguist/strategy/manpage.rb
github-linguist-7.19.0 lib/linguist/strategy/manpage.rb
github-linguist-7.18.0 lib/linguist/strategy/manpage.rb
github-linguist-7.17.0 lib/linguist/strategy/manpage.rb