Module: Uprb::GemspecMetadata
- Defined in:
- lib/uprb/gemspec_metadata.rb
Defined Under Namespace
Classes: Result
Constant Summary collapse
- KNOWN_KEYS =
%w[uprb.requires].freeze
- REQUIRES_KEY =
"uprb.requires"- REQUIRE_ENTRY_PATTERN =
%r{\A[A-Za-z0-9_.][A-Za-z0-9_./-]*\z}
Class Method Summary collapse
Class Method Details
.parse_requires(value) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/uprb/gemspec_metadata.rb', line 34 def self.parse_requires(value) warnings = [] entries = value.to_s.split(",").map(&:strip).reject(&:empty?) kept = entries.select do |entry| if REQUIRE_ENTRY_PATTERN.match?(entry) true else warnings << "uprb: ignoring gemspec metadata #{REQUIRES_KEY} entry #{entry.inspect}" false end end [kept, warnings] end |
.read(spec) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/uprb/gemspec_metadata.rb', line 11 def self.read(spec) = spec. || {} warnings = [] requires = [] .each do |key, value| next unless key.start_with?("uprb.") unless KNOWN_KEYS.include?(key) warnings << "uprb: ignoring unknown gemspec metadata key #{key.inspect}" next end if key == REQUIRES_KEY parsed, entry_warnings = parse_requires(value) requires.concat(parsed) warnings.concat(entry_warnings) end end Result.new(requires:, warnings:) end |