Sha256: 2e89aa6615092ea6ae667751898126049da6a3348c6cdd9a48c0499d36b0b136

Contents?: true

Size: 757 Bytes

Versions: 36

Compression:

Stored size: 757 Bytes

Contents

require "open-uri"

class Middleman::HashiCorp::Releases
  RELEASES_URL = "https://releases.hashicorp.com".freeze

  class Build < Struct.new(:name, :version, :os, :arch, :url); end

  def self.fetch(product, version)
    url = "#{RELEASES_URL}/#{product}/#{version}/index.json"
    r = JSON.parse(open(url).string,
      create_additions: false,
      symbolize_names: true,
    )

    # Convert the builds into the following format:
    #
    #     {
    #       "os" => {
    #         "arch" => "https://download.url"
    #       }
    #     }
    #
    {}.tap do |h|
      r[:builds].each do |b|
        build = Build.new(*b.values_at(*Build.members))

        h[build.os] ||= {}
        h[build.os][build.arch] = build.url
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
middleman-hashicorp-0.3.37 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.35 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.34 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.33 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.32 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.31 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.30 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.29 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.28 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.26 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.25 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.24 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.22 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.21 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.20 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.19 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.18 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.17 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.16 lib/middleman-hashicorp/releases.rb
middleman-hashicorp-0.3.15 lib/middleman-hashicorp/releases.rb