Sha256: ef4536c81debe2a941c6b6909358c34e09ddc7e0069c4b42752e5d238d2bdc31
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
module Licensee module Matchers class Cran < Licensee::Matchers::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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
licensee-9.10.1 | lib/licensee/matchers/cran.rb |