Module: Showroom::Core::StoreUrl

Defined in:
lib/showroom/core/store_url.rb

Overview

Resolves a raw store identifier into a canonical HTTPS base URL.

Class Method Summary collapse

Class Method Details

.resolve(store) ⇒ String

Resolves store to a base URL string.

Examples:

StoreUrl.resolve('example.myshopify.com')           # => "https://example.myshopify.com"
StoreUrl.resolve('https://example.myshopify.com/')  # => "https://example.myshopify.com"
StoreUrl.resolve('http://example.myshopify.com')    # => "https://example.myshopify.com"

Parameters:

  • store (String, nil)

    raw store value (domain, URL, etc.)

Returns:

  • (String)

    canonical HTTPS base URL with no trailing slash

Raises:



19
20
21
22
23
24
25
26
27
# File 'lib/showroom/core/store_url.rb', line 19

def self.resolve(store)
  raise ConfigurationError, 'store must not be blank' if store.nil? || store.strip.empty?

  uri = parse_uri(store.strip)
  validate_path!(uri, store.strip)
  normalise(uri)
rescue URI::InvalidURIError => e
  raise ConfigurationError, "invalid store URL: #{e.message}"
end