Sha256: e92ad6fd35c4de30f3afe0368d323b22e48e1d7da3839afb5c1bb7aa99c32501
Contents?: true
Size: 1.32 KB
Versions: 2
Compression:
Stored size: 1.32 KB
Contents
module Licensee module Matchers class Cran < Package attr_reader :file # While we could parse the DESCRIPTION file, prefer # a lenient regex for speed and security. Moar parsing moar problems. LICENSE_FIELD_REGEX = /^license:\s*(.+)/i PLUS_FILE_LICENSE_REGEX = /\s*\+\s*file\s+LICENSE$/i GPL_VERSION_REGEX = /^GPL(?:-([23])|\s*\(\s*>=\s*([23])\s*\))$/i private # Returns the raw license string from the `license: ` field # or `nil` if no license field is found def license_field return @license_field if defined? @license_field match = @file.content.match LICENSE_FIELD_REGEX @license_field = match ? match[1].downcase : nil end # returns the normalized GPL version, if the license is a GPL license # Otherwise, returns `nil` def gpl_version(license_key) match = license_key.match GPL_VERSION_REGEX match ? "gpl-#{(match[1] || match[2])}.0" : nil end # Normalizes the license field value to an SPDX ID # Rerurns `nil` if no license is found def license_property return unless license_field # Remove The common + file LICENSE text license_key = license_field.sub(PLUS_FILE_LICENSE_REGEX, '') gpl_version(license_key) || license_key end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
licensee-8.9.2 | lib/licensee/matchers/cran_matcher.rb |
licensee-8.9.0 | lib/licensee/matchers/cran_matcher.rb |