class Cloudimage::Client

Constants

API_VERSION
DEFAULT_SIGNATURE_LENGTH

Attributes

config[R]

Public Class Methods

new(**options) click to toggle source
# File lib/cloudimage/client.rb, line 17
def initialize(**options)
  @config = set_config_defaults(options)
  validate_config
end

Public Instance Methods

path(path) click to toggle source
# File lib/cloudimage/client.rb, line 22
def path(path)
  URI.new(path, **config)
end

Private Instance Methods

set_config_defaults(options) click to toggle source
# File lib/cloudimage/client.rb, line 28
def set_config_defaults(options)
  options.tap do |config|
    config[:signature_length] =
      options[:signature_length] || DEFAULT_SIGNATURE_LENGTH
    config[:api_version] = API_VERSION
    config[:include_api_version] =
      options[:include_api_version].nil? ? true : false
    config[:sign_urls] = options[:sign_urls].nil? ? true : false
    config[:aliases] = options[:aliases] || {}
  end
end
validate_config() click to toggle source
# File lib/cloudimage/client.rb, line 40
def validate_config
  validate_site_config
  validate_signature_length
end
validate_signature_length() click to toggle source
# File lib/cloudimage/client.rb, line 52
def validate_signature_length
  return if config[:salt].nil?
  return if (6..40).cover? config[:signature_length]

  raise InvalidConfig, 'Signature length must be must be 6-40 characters.'
end
validate_site_config() click to toggle source
# File lib/cloudimage/client.rb, line 45
def validate_site_config
  return unless config[:token].nil? && config[:cname].nil?

  raise InvalidConfig,
        'Please specify your customer token or a custom CNAME.'
end