class Object

Constants

CACHE_PURGE_STATUS_ID_MISSING
CACHE_PURGE_URL_MISSING
DEFAULT_TIME_DIFF
FILE_ID_MISSING
INVALID_PHASH_VALUE
INVALID_TRANSFORMATION_OPTIONS
INVALID_TRANSFORMATION_POS
INVALID_URL_GENERATION_PARAM
LIST_FILES_INPUT_MISSING
MANDATORY_INIT_MISSING
MISSING_FILE_URL
MISSING_PHASH_VALUE
MISSING_PRIVATE_KEY
MISSING_PUBLIC_KEY
MISSING_UPLOAD_DATA
MISSING_UPLOAD_FILENAME_PARAM
MISSING_UPLOAD_FILE_PARAMETER
MISSING_URL_ENDPOINT
SUPPORTED_TRANS
UNEQUAL_STRING_LENGTH
UPDATE_DATA_COORDS_INVALID
UPDATE_DATA_MISSING
UPDATE_DATA_TAGS_INVALID
VALID_FILE_DETAIL_OPTIONS
VALID_FILE_OPTIONS
VALID_UPLOAD_OPTIONS

Public Instance Methods

camel_to_snake(camel_word) click to toggle source
# File lib/imagekit/utils/formatter.rb, line 14
def camel_to_snake(camel_word)
  # convert camel case to snake case
  camel_word.to_s.gsub(/::/, "/")
    .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
    .gsub(/([a-z\d])([A-Z])/, '\1_\2')
    .tr("-", "_")
    .downcase
end
get_authenticated_params(token, expire, private_key) click to toggle source
# File lib/imagekit/utils/calculation.rb, line 21
def get_authenticated_params(token, expire, private_key)
  # return authenticated param
  default_expire = DateTime.now.strftime("%s").to_i + DEFAULT_TIME_DIFF
  token ||= SecureRandom.uuid

  auth_params = {'token': token, 'expire': expire, 'signature': ""}
  unless private_key
    return nil
  end

  signature = OpenSSL::HMAC.hexdigest("SHA1", private_key, token.to_s + expire.to_s)
  auth_params[:token] = token
  auth_params[:expire] = expire || default_expire
  auth_params[:signature] = signature
  auth_params
end
hamming_distance(first, second) click to toggle source
# File lib/imagekit/utils/calculation.rb, line 11
def hamming_distance(first, second)
  # Calculate Hamming distance between to hex string
  unless is_valid_hex(first) && is_valid_hex(second)
    raise ArgumentError, "Both argument should be hexadecimal"
  end
  a = first.to_i(16)
  b = second.to_i(16)
  (a ^ b).to_s(2).count("1")
end
is_valid_hex(hex_string) click to toggle source
# File lib/imagekit/utils/calculation.rb, line 6
def is_valid_hex(hex_string)
  # checks if hexadecimal value is valid or not
  /^[[:xdigit:]]+$/ === hex_string
end
request_formatter(data) click to toggle source
# File lib/imagekit/utils/formatter.rb, line 23
def request_formatter(data)
  result = {}
  data.each do |key, val|
    result[snake_to_camel(key.to_s)] = val
  end
  result
end
snake_to_camel(word) click to toggle source
# File lib/imagekit/utils/formatter.rb, line 1
def snake_to_camel(word)
  word_list = word.split("_")
  result = []
  word_list&.each { |i|
    if i == word_list[0]
      result.push(i)
    else
      result.push(i.capitalize)
    end
  }
  result.join
end