Method: Puppet::Forge::ModuleRelease#initialize

Defined in:
lib/puppet/forge.rb

#initialize(source, data) ⇒ ModuleRelease

Returns a new instance of ModuleRelease.



120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/puppet/forge.rb', line 120

def initialize(source, data)
  @data = data
  @metadata = meta = data['metadata']

  name = meta['name'].tr('/', '-')
  version = Semantic::Version.parse(meta['version'])
  release = "#{name}@#{version}"

  if meta['dependencies']
    dependencies = meta['dependencies'].collect do |dep|
      begin
        Puppet::ModuleTool::Metadata.new.add_dependency(dep['name'], dep['version_requirement'], dep['repository'])
        Puppet::ModuleTool.parse_module_dependency(release, dep)[0..1]
      rescue ArgumentError => e
        raise ArgumentError, "Malformed dependency: #{dep['name']}. Exception was: #{e}"
      end
    end
  else
    dependencies = []
  end

  super(source, name, version, Hash[dependencies])
end