Method: GeoLocale.country_code

Defined in:
lib/geo_locale/country_code.rb

.country_code(ip: "", request_headers: {}) ⇒ Object

ip = “12.12.12.12”



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/geo_locale/country_code.rb', line 6

def self.country_code(ip: "", request_headers: {}) # ip = "12.12.12.12"
  if request_headers.present?
    cloudflare_country_code = cloudflare_country_code(request_headers)
    return cloudflare_country_code.downcase if cloudflare_country_code.present? && cloudflare_country_code != "XX"
  end

  return GeoLocale.config.localhost_country if ip == GeoLocale::LOCALHOST_IP && GeoLocale.config.localhost_country.present?
  country_code = GeoLocale.geo_ip_try(ip)
  if country_code.present?
    return country_code
  else
    country_code = GeoLocale.geokit_try(ip)
    if country_code.present?
      return country_code
    else
      # final fallback, config default
      return GeoLocale.config.default_country
    end
  end
end