class CountryDetails::Get

Public Class Methods

new() click to toggle source
# File lib/country_details.rb, line 5
def initialize
  url = 'https://restcountries.eu/rest/v2/all'
  rest_client_response = RestClient.get(url)
  @@all_countries = JSON.parse(rest_client_response.body)
end

Public Instance Methods

all() click to toggle source
# File lib/country_details.rb, line 11
def all
  @@all_countries
end
details_by_code(code, options = {}) click to toggle source
# File lib/country_details.rb, line 21
def details_by_code(code, options = {})
  code = code.upcase
  if code.length == 2
    detail = @@all_countries.map{|detail| detail if detail["alpha2Code"]==code}.compact
  elsif code.length == 3
    detail = all.map{|detail| detail if detail["alpha3Code"]==code}.compact 
  end      
  return {'success': 'false', 'Error': 'Invalid code!'} unless detail.present? 
  return detail
end
details_by_name(country_name, options = {}) click to toggle source
# File lib/country_details.rb, line 15
def details_by_name(country_name, options = {})
  detail = @@all_countries.map{|detail| detail if detail["name"]==country_name.capitalize}.compact
  return {'success': 'false', 'Error': 'Invalid country name!'} unless detail.present?
  return detail
end