module PostcodeGem

Constants

VERSION

Attributes

city[RW]
country[RW]
zipcode[RW]

Public Class Methods

output_zipcode() click to toggle source
# File lib/postcode_gem.rb, line 9
def output_zipcode
        @data = PostcodeData::DATA
        prompt = TTY::Prompt.new
        @country = prompt.select('Enter the country you want to select', %w(Vietnam England Japan))
        print "Enter the city or area code you want to search: "
        @city_zipcode = gets.chomp
        @firstWord = @city_zipcode.split('')[0]
        @city = @data[@country.to_sym].values
        @zipcode = @data[@country.to_sym].keys
        @data_country = @data[@country.to_sym]

        if @data_country.has_key?(@city_zipcode)
                puts @data_country.values_at("#{@city_zipcode}")
        elsif @data_country.has_key?(@city_zipcode) == false && /[0-9]/.match(@firstWord)
                puts @zipcode.map { |v| puts v if v.to_s.start_with?(@firstWord) }
        end
        if @data_country.has_value?(@city_zipcode)
                puts @data_country.key(@city_zipcode)
        elsif @data_country.has_value?(@city_zipcode) == false && /[a-z]/.match(@firstWord)
                puts @city.map { |v| puts v if v.to_s.start_with?(@firstWord) }
        end
end

Private Instance Methods

output_zipcode() click to toggle source
# File lib/postcode_gem.rb, line 9
def output_zipcode
        @data = PostcodeData::DATA
        prompt = TTY::Prompt.new
        @country = prompt.select('Enter the country you want to select', %w(Vietnam England Japan))
        print "Enter the city or area code you want to search: "
        @city_zipcode = gets.chomp
        @firstWord = @city_zipcode.split('')[0]
        @city = @data[@country.to_sym].values
        @zipcode = @data[@country.to_sym].keys
        @data_country = @data[@country.to_sym]

        if @data_country.has_key?(@city_zipcode)
                puts @data_country.values_at("#{@city_zipcode}")
        elsif @data_country.has_key?(@city_zipcode) == false && /[0-9]/.match(@firstWord)
                puts @zipcode.map { |v| puts v if v.to_s.start_with?(@firstWord) }
        end
        if @data_country.has_value?(@city_zipcode)
                puts @data_country.key(@city_zipcode)
        elsif @data_country.has_value?(@city_zipcode) == false && /[a-z]/.match(@firstWord)
                puts @city.map { |v| puts v if v.to_s.start_with?(@firstWord) }
        end
end