Sha256: 7fd3a0c8d25b78921ae0684fa88511761d199ada76b8d04c3f9790e1070813d7
Contents?: true
Size: 892 Bytes
Versions: 1
Compression:
Stored size: 892 Bytes
Contents
require "sqlite3" module Ziptastic class NotZipCode < StandardError; end DATABASE_PATH = File.expand_path(File.dirname(__FILE__) + "/ziptastic/data/zipcodes.db") ZIP_DATABASE = SQLite3::Database.open(DATABASE_PATH, :readonly => true, :results_as_hash => true) def self.search(zip_code) search_results = [] search_results = search_for_zip_code(zip_code).collect do |row| {:city => row['city'], :state => row['state'], :country => row['country']} end search_results end private def self.search_for_zip_code(zip_code) validate_zip_code(zip_code) ZIP_DATABASE.execute('select City, State, Country from zipcodes where ZipCode=?', zip_code) end def self.validate_zip_code(zip_code) raise NotZipCode, "#{zip_code} is not a zip code!" if zip_code =~ /\D/ end end require "ziptastic/app" require "ziptastic/version"
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ziptastic-0.1.0 | lib/ziptastic.rb |