class CountriesCli::COUNTRY

Attributes

capital[RW]
currencies[RW]
flag[RW]
languages[RW]
name[RW]
population[RW]
region[RW]
subregion[RW]

Public Class Methods

all() click to toggle source
# File lib/countries_cli/country.rb, line 25
def self.all
    @@all
end
all_country_names() click to toggle source
# File lib/countries_cli/country.rb, line 29
def self.all_country_names
    self.all.each_with_index do |country, i|
        puts "#{i+1}. #{country.name}" 
    end
end
new(attr_hash) click to toggle source
# File lib/countries_cli/country.rb, line 7
def initialize(attr_hash)
    attr_hash.each do |attribute, value|
        if self.respond_to?(attribute)
            self.send(("#{attribute}="), value)
        end
    end
    if self.capital == ""
        self.capital = "n/a"
    end 
    if self.region == ""
        self.region = "n/a"
    end 
    if self.subregion == ""
        self.subregion = "n/a"
    end 
    @@all << self
end
search_all_with_currency_name(currency_name) click to toggle source
# File lib/countries_cli/country.rb, line 77
def self.search_all_with_currency_name(currency_name)
    self.all.select do |country| 
        bool = false
        country.currencies.each do |currency_info|
            if currency_info["name"] && currency_info["name"].downcase == currency_name.downcase
                bool = true
            end
        end 
        bool
    end 
end
search_all_with_currency_symbol(currency_symbol) click to toggle source
# File lib/countries_cli/country.rb, line 65
def self.search_all_with_currency_symbol(currency_symbol)
    self.all.select do |country| 
        bool = false
        country.currencies.each do |currency_info|
            if currency_info["symbol"] == currency_symbol
                bool = true
            end
        end 
        bool
    end 
end
search_all_with_language(language) click to toggle source
# File lib/countries_cli/country.rb, line 89
def self.search_all_with_language(language)
    self.all.select do |country| 
        bool = false
        country.languages.each do |language_info|
            if language_info["name"] && (language_info["name"].downcase == language.downcase || language_info["nativeName"].downcase == language.downcase)
                bool = true
            end
        end 
        bool
    end 
end
search_all_with_population(comparison, population) click to toggle source
# File lib/countries_cli/country.rb, line 101
def self.search_all_with_population(comparison, population)
    if comparison == "l" 
        self.all.select{|country| country.population < population}.sort_by{|country| country.population}
    elsif comparison == "g" 
        self.all.select{|country| country.population > population}.sort_by{|country| country.population}
    end 
end
search_by_capital(capital) click to toggle source
# File lib/countries_cli/country.rb, line 109
def self.search_by_capital(capital)
    self.all.detect{|country| country.capital.downcase == capital.downcase}
end
search_by_name(name) click to toggle source
# File lib/countries_cli/country.rb, line 35
def self.search_by_name(name)
    self.all.detect{|country| country.name.downcase == name.downcase}
end
search_by_region(region) click to toggle source
# File lib/countries_cli/country.rb, line 113
def self.search_by_region(region)
    self.all.select{|country| country.region.downcase == region.downcase}
end
search_by_subregion(subregion) click to toggle source
# File lib/countries_cli/country.rb, line 117
def self.search_by_subregion(subregion)
    self.all.select{|country| country.subregion.downcase == subregion.downcase}
end
search_by_suffix(suffix) click to toggle source
# File lib/countries_cli/country.rb, line 61
def self.search_by_suffix(suffix)
    self.all.detect{|country| country.name.downcase.match(/^(#{suffix.downcase})/)}
end

Public Instance Methods

info() click to toggle source
# File lib/countries_cli/country.rb, line 39
def info
    puts "Name: #{self.name}"
    puts "Capital: #{self.capital}"
    print "Currencies: \n" 
    self.currencies.each_with_index do |currency, index|
            print "\t#{index+1}. code: #{currency["code"]}"
            print ", name: #{currency["name"]}"
            print ", symbol: #{currency["symbol"]}\n"
    end 
    print "Languages: \n"
    self.languages.each_with_index do |language, index|
            print "\t#{index+1}. iso639_1: #{language["iso639_1"]}"
            print ", iso639_2: #{language["iso639_2"]}"
            print ", name: #{language["name"]}"
            print ", native name: #{language["nativeName"]}\n"
    end 
    puts "Population: #{self.population}"
    puts "Flag: #{self.flag}"
    puts "Region: #{self.region}"
    puts "Subregion: #{self.subregion}"
end