Sha256: d26e282b045d7a11b3788f5ca61623980a71e649558c395327e398b9ce7c358a

Contents?: true

Size: 943 Bytes

Versions: 7

Compression:

Stored size: 943 Bytes

Contents

require 'puppet_forge/v3/base'
require 'puppet_forge/v3/module'

module PuppetForge
  module V3

    # Models a specific release version of a Puppet Module on the Forge.
    class Release < Base
      lazy :module
      
      # Returns a fully qualified URL for downloading this release from the Forge.
      #
      # @return [String] fully qualified download URL for release
      def download_url
        if URI.parse(file_uri).host.nil?
          PuppetForge.host + file_uri
        else
          file_uri
        end
      end

      # Downloads the Release tarball to the specified file path.
      #
      # @todo Stream the tarball data to disk.
      # @param file [String] the file to create
      # @return [void]
      def download(file)
        self.class.get_raw(download_url)[:response].on_complete do |env|
          File.open(file, 'wb') { |file| file.write(env[:body]) }
        end
        nil
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
puppet_forge-1.0.6 lib/puppet_forge/v3/release.rb
puppet_forge-1.0.5 lib/puppet_forge/v3/release.rb
puppet_forge-1.0.4 lib/puppet_forge/v3/release.rb
puppet_forge-1.0.3 lib/puppet_forge/v3/release.rb
puppet_forge-1.0.2 lib/puppet_forge/v3/release.rb
puppet_forge-1.0.1 lib/puppet_forge/v3/release.rb
puppet_forge-1.0.0 lib/puppet_forge/v3/release.rb