Sha256: 396da2d0a8de83ff39146cea8c3922f719acefb78d9ac5dd015c1c66eced931d

Contents?: true

Size: 688 Bytes

Versions: 69

Compression:

Stored size: 688 Bytes

Contents

require 'uuidtools'

module Vault
  module Product
    # Convert a product name into a v5 UUID.
    #
    # @param name [String] A product name.
    # @raise [RuntimeError] Raised if the product name is empty or contains
    #   illegal characters.  A product name may only contain 'a-z', '0-9' and
    #   ':' characters.
    # @return [String] A v5 UUID that uniquely represents the product.
    def self.name_to_uuid(name)
      unless name =~ /[a-z,0-9,:]+/
        raise "Product name empty or contains illegal characters."
      end
      url = "https://vault.heroku.com/products/#{name}"
      UUIDTools::UUID.sha1_create(UUIDTools::UUID_URL_NAMESPACE, url).to_s
    end
  end
end

Version data entries

69 entries across 69 versions & 1 rubygems

Version Path
vault-tools-2.1.1 lib/vault-tools/product.rb
vault-tools-2.1.0 lib/vault-tools/product.rb
vault-tools-2.0.2 lib/vault-tools/product.rb
vault-tools-2.0.1 lib/vault-tools/product.rb
vault-tools-2.0.0 lib/vault-tools/product.rb
vault-tools-1.0.1 lib/vault-tools/product.rb
vault-tools-1.0.0 lib/vault-tools/product.rb
vault-tools-0.7.1 lib/vault-tools/product.rb
vault-tools-0.7.0 lib/vault-tools/product.rb
vault-tools-0.6.5 lib/vault-tools/product.rb
vault-tools-0.6.4 lib/vault-tools/product.rb
vault-tools-0.6.3 lib/vault-tools/product.rb
vault-tools-0.6.2 lib/vault-tools/product.rb
vault-tools-0.6.1 lib/vault-tools/product.rb
vault-tools-0.6.0 lib/vault-tools/product.rb
vault-tools-0.5.22 lib/vault-tools/product.rb
vault-tools-0.5.21 lib/vault-tools/product.rb
vault-tools-0.5.19 lib/vault-tools/product.rb
vault-tools-0.5.18 lib/vault-tools/product.rb
vault-tools-0.5.17 lib/vault-tools/product.rb