class CybridApiId::Configuration

def server_url(index, variables = {}, servers = nil)

Parameters:
  • variables () -- hash of variable and the corresponding value
  • index () -- array index of the server settings
def server_url(index, variables = {}, servers = nil)
  servers = server_settings if servers == nil
  # check array index out of bound
  if (index < 0 || index >= servers.size)
    fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
  end
  server = servers[index]
  url = server[:url]
  return url unless server.key? :variables
  # go through variable and assign a value
  server[:variables].each do |name, variable|
    if variables.key?(name)
      if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
        url.gsub! "{" + name.to_s + "}", variables[name]
      else
        fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
      end
    else
      # use default value
      url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value]
    end
  end
  url
end