Method: Puppet::Forge::ModuleRelease#initialize

Defined in:
lib/puppet/forge.rb

#initialize(source, data) ⇒ ModuleRelease

Returns a new instance of ModuleRelease.



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/puppet/forge.rb', line 125

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

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

  if meta['dependencies']
    dependencies = meta['dependencies'].collect do |dep|
      begin
        Puppet::ModuleTool::.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: %{name}.") % { name: dep['name'] } +
            ' ' + _("Exception was: %{detail}") % { detail: e }
      end
    end
  else
    dependencies = []
  end

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