Class: Uploadcare::CnameGenerator
- Inherits:
-
Object
- Object
- Uploadcare::CnameGenerator
- Defined in:
- lib/uploadcare/cname_generator.rb
Overview
CNAME generator for Uploadcare CDN.
Constant Summary collapse
- CNAME_PREFIX_LEN =
CNAME prefix length.
10
Class Method Summary collapse
-
.cdn_base_postfix(config: Uploadcare.configuration) ⇒ String
Build CDN base URL with a generated CNAME prefix.
-
.generate_cname(public_key: Uploadcare.configuration.public_key) ⇒ String
Generate a CNAME prefix for the current public key.
Class Method Details
.cdn_base_postfix(config: Uploadcare.configuration) ⇒ String
Build CDN base URL with a generated CNAME prefix.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/uploadcare/cname_generator.rb', line 19 def cdn_base_postfix(config: Uploadcare.configuration) key = [config.cdn_base_postfix, config.public_key] cached = @cdn_base_postfix_cache&.[](key) return cached if cached cache_mutex.synchronize do @cdn_base_postfix_cache ||= {} @cdn_base_postfix_cache[key] ||= begin uri = URI.parse(config.cdn_base_postfix) uri.host = "#{generate_cname(public_key: config.public_key)}.#{uri.host}" uri.to_s rescue URI::InvalidURIError => e raise Uploadcare::Exception::ConfigurationError, "Invalid cdn_base_postfix URL: #{e.}" end end end |
.generate_cname(public_key: Uploadcare.configuration.public_key) ⇒ String
Generate a CNAME prefix for the current public key.
40 41 42 |
# File 'lib/uploadcare/cname_generator.rb', line 40 def generate_cname(public_key: Uploadcare.configuration.public_key) custom_cname(public_key) end |