Sha256: 962f1a7c9711a74d21c6c175205be03661d1da350b62889bdd8b46f7fd8a1712

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

module Licensee
  module ProjectFiles
    class ReadmeFile < Licensee::ProjectFiles::LicenseFile
      SCORES = {
        /\AREADME\z/i                          => 1.0,
        /\AREADME\.(md|markdown|mdown|txt)\z/i => 0.9
      }.freeze

      CONTENT_REGEX = /^
          (?:\#+\sLicen[sc]e     # Start of hashes-based license header
             |
             Licen[sc]e\n[-=]+)$ # Start of underlined license header
          (.*?)                  # License content
          (?=^(?:\#+             # Next hashes-based header
                 |
                 [^\n]+\n[-=]+)  # Next of underlined header
             |
             \z)                 # End of file
        /mix

      def possible_matchers
        super.push(Matchers::Reference)
      end

      def self.name_score(filename)
        SCORES.each do |pattern, score|
          return score if pattern =~ filename
        end
        0.0
      end

      def self.license_content(content)
        match = CONTENT_REGEX.match(content)
        match[1].strip if match
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
licensee-9.7.0 lib/licensee/project_files/readme_file.rb
licensee-9.6.0 lib/licensee/project_files/readme_file.rb
licensee-9.5.0 lib/licensee/project_files/readme_file.rb