class PuppetfileResolver::Puppetfile::Parser::R10KEval::Module::Forge

Constants

REGEX_BUILD
REGEX_FULL
REGEX_FULL_RX
REGEX_NUMERIC

Version string matching regexes From Semantic Puppet gem

REGEX_PRE

Public Class Methods

implements?(name, args) click to toggle source
# File lib/puppetfile-resolver/puppetfile/parser/r10k_eval/module/forge.rb, line 11
def self.implements?(name, args)
  !name.match(/\A(\w+)[-\/](\w+)\Z/).nil? && valid_version?(args)
end
to_document_module(title, args) click to toggle source
# File lib/puppetfile-resolver/puppetfile/parser/r10k_eval/module/forge.rb, line 15
def self.to_document_module(title, args)
  mod = ::PuppetfileResolver::Puppetfile::ForgeModule.new(title)
  mod.version = munge_version_string(args) if valid_version?(args)
  mod
end

Private Class Methods

munge_version_string(value) click to toggle source
# File lib/puppetfile-resolver/puppetfile/parser/r10k_eval/module/forge.rb, line 46
def self.munge_version_string(value)
  return :latest if value.nil? || value == :latest
  "=#{value}"
end
valid_version?(value) click to toggle source
# File lib/puppetfile-resolver/puppetfile/parser/r10k_eval/module/forge.rb, line 21
def self.valid_version?(value)
  return false unless value.is_a?(String) || value.is_a?(Symbol) || value.nil?
  value == :latest || value.nil? || valid_version_string?(value)
end
valid_version_string?(value) click to toggle source
# File lib/puppetfile-resolver/puppetfile/parser/r10k_eval/module/forge.rb, line 35
def self.valid_version_string?(value)
  match = value.match(REGEX_FULL_RX)
  if match.nil?
    false
  else
    prerelease = match[4]
    prerelease.nil? || prerelease.split('.').all? { |x| x !~ /^0\d+$/ }
  end
end