Sha256: 8a9c9a8299a817b2e6af7526851e96c5e1c4d3178510f0bc09390e741d67d94e
Contents?: true
Size: 1.47 KB
Versions: 1
Compression:
Stored size: 1.47 KB
Contents
module Licensee module Matchers class Gemspec < Licensee::Matchers::Package # a value is a string surrounded by any amount of whitespace # optionally ended with (non-captured) ".freeze" VALUE_REGEX = /\s*[\'\"]([a-z\-0-9\.]+)[\'\"](?:\.freeze)?\s*/i.freeze # an array contains one or more values. all values, or array itself, # can be surrounded by any amount of whitespace. do not capture # non-value groups ARRAY_REGEX = /\s*\[#{VALUE_REGEX}(?:,#{VALUE_REGEX})*\]\s*/i.freeze DECLARATION_REGEX = / ^\s*[a-z0-9_]+\.([a-z0-9_]+)\s*\=#{VALUE_REGEX}$ /ix.freeze LICENSE_REGEX = / ^\s*[a-z0-9_]+\.license\s*\=#{VALUE_REGEX}$ /ix.freeze LICENSE_ARRAY_REGEX = / ^\s*[a-z0-9_]+\.licenses\s*\=#{ARRAY_REGEX}$ /ix.freeze private def license_property match = @file.content.match LICENSE_REGEX return match[1].downcase if match && match[1] # check for a licenses array property licenses = license_array_property return unless licenses # use 'other' if array contains multiple licenses return 'other' unless licenses.size == 1 licenses[0] end def license_array_property match = @file.content.match LICENSE_ARRAY_REGEX match.captures.compact.map(&:downcase) if match end def declarations @declarations ||= @file.content.match DECLARATION_REGEX end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
licensee-9.11.0 | lib/licensee/matchers/gemspec.rb |