Method: PDK::Util::PuppetVersion#from_module_metadata

Defined in:
lib/pdk/util/puppet_version.rb

#from_module_metadata(metadata = nil) ⇒ Object



140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/pdk/util/puppet_version.rb', line 140

def ( = nil)
  require 'pdk/module/metadata'
  require 'pdk/util'

  if .nil?
     = PDK::Util.find_upwards('metadata.json')

    unless 
      PDK.logger.warn 'Unable to determine Puppet version for module: no metadata.json present in module.'
      return
    end

     = PDK::Module::Metadata.from_file()
  end

  .validate_puppet_version_requirement!
   = .puppet_requirement

  # Split combined requirements like ">= 4.7.0 < 6.0.0" into their
  # component requirements [">= 4.7.0", "< 6.0.0"]
  pattern = /#{Gem::Requirement::PATTERN_RAW}/o
  requirement_strings = ['version_requirement'].scan(pattern).map do |req|
    req.compact.join(' ')
  end

  gem_requirement = Gem::Requirement.create(requirement_strings)
  find_gem(gem_requirement)
end