Spokeo/geolookup

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Geolookup [![Build Status](https://travis-ci.org/Spokeo/geolookup.png?branch=master)](https://travis-ci.org/Spokeo/geolookup)
[![Code Climate](https://codeclimate.com/github/Spokeo/geolookup.png)](https://codeclimate.com/github/Spokeo/geolookup)

This gem wraps very common Geo lookups to either FIPS data or the collection of international data lookups.  All codes on the app are FIPS codes.

## Installation

Add this line to your application's Gemfile:

    gem 'geolookup'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install geolookup

## Usage

There are functions within fips and country_info to convert codes to Country and US states.

## Examples

```ruby
# US State Examples:

# Code to US state abbreviation
Geolookup::USA::State.code_to_abbreviation(1)
# => "AL"

# Code to US state name
Geolookup::USA::State.code_to_name(1)
# => "Alabama"

# US State Name to US state code
Geolookup::USA::State.name_to_code("Alabama")
# => 1

# US State abbreviation to name
Geolookup::USA::State.abbreviation_to_name("AL")
# => "Alabama"

# US State name to abbreviation
Geolookup::USA::State.name_to_abbreviation("Alabama")
# => "AL"

# US State name / Abbreviation to lat and long
Geolookup::USA::State.name_to_lat_long("Alabama")
# => [ 32318231,  -86602298]

Geolookup::USA::State.abbreviation_to_lat_long("AL")
# => [ 32318231,  -86602298]

# US State Code to Lat and Long
Geolookup::USA::State.code_to_lat_long(1)
# => [ 32318231,  -86602298]

# US State Names
Geolookup::USA::State.names
# => ["Alabama", "Alaska", ...]

# US State Abbreviations
Geolookup::USA::State.abbreviations
# => ["AL", "AK", "AZ", ...]

# US Domenstic Abbreviations
Geolookup::USA::State.domestic_abbreviations
# => ["CA", "AZ", ...]

# US Domenstic names
Geolookup::USA::State.domestic_names
# => ["California", "Arizona", ...]

# US state codes and abbreviations
Geolookup::USA::State.codes_and_abbreviations
# => {1: "AL", 2: "AK", ...}

# US state codes and names
Geolookup::USA::State.codes_and_names
# => {1: "Alabama", 2: "Alaska", ...}

# US state abbreviations and names
Geolookup::USA::State.abbreviations_and_names
# => {AL: "Alabama", AK: "Alaska", ...}

# US State Codes
Geolookup::USA::State.codes
# => [1, 2, 4, ...]

# US Territory State Codes
Geolookup::USA::State.territory_state_codes
# => [60, 66, 69, ...]

# US Territory State Names
Geolookup::USA::State.territory_state_names
# => ["American Samoa", "Guam", ...]

# US District State Codes
Geolookup::USA::State.district_state_codes
# => [11]

# US District State Names
Geolookup::USA::State.district_state_names
# => ["District of Columbia"]

# Determine if state is territory

# With code
Geolookup::USA::State.territory?(60)
# => true

Geolookup::USA::State.territory?('60')
# => true

# With state name
Geolookup::USA::State.territory?('Guam')
# => true

# With state abbreviation
Geolookup::USA::State.territory?('GU')
# => true

Geolookup::USA::State.territory?('AZ')
# => false

# Determine if state is district

# With code
Geolookup::USA::State.district?(11)
# => true

Geolookup::USA::State.district?('11')
# => true

# With state name
Geolookup::USA::State.district?('District of Columbia')
# => true

# With state abbreviation
Geolookup::USA::State.district?('DC')
# => true

Geolookup::USA::State.district?('FL')
# => false

# US County Examples:

# Given a state code and county code return the county name
Geolookup::USA::County.code_to_name(1, 1)
# => "AUTAUGA"

# Given a state code and county code return the lat and long for that county
Geolookup::USA::County.code_to_lat_long(1, 1)
# => [32534930, -86642790]

# Given a state code and county name return the county code
Geolookup::USA::County.name_to_code(1, 'Autauga')
# => 1


# Country Examples:

Geolookup::Country.name_to_code("American Samoa")
# => "AS"

Geolookup::Country.code_to_name("AS")
# => "American Samoa"

Geolookup::Country.lat_long("American Samoa")
# => [ -14333300, -170000000 ]

Geolookup::USA::AreaCodes.find('202')
# => {country: 'US', description: '', service: 'y', state: 'DC', type: 'general purpose code'}

Geolookup::USA::Zipcodes.lat_long('90012')
# => {:lat_int=>39715698, :long_int=>-104814319}

Geolookup::Country::PhoneCodes.country_to_phone_code("US")
# => 1


# Region Examples:

Geolookup::Region.country_abbr_and_region_code_to_region_name(country_abbr: "AD", region_code: "02")
# => "Canillo"

Geolookup::Region.country_abbr_and_region_code_to_region_name(country_abbr: :ad, region_code: "02")
# => "Canillo"

Geolookup::Region.country_abbr_and_region_code_to_region_name(country_abbr: "ZZ", region_code: "02")
# => nil

Geolookup::Region.country_abbr_and_region_code_to_region_name(country_abbr: "AD", region_code: "ZZ")
# => nil
```


For additional functions and documentation please look in geolookup/fips.rb and geolookup/country.rb.

## Contributing

1. Fork it ( http://github.com/Spokeo/geolookup/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Write specs!
4. Commit your changes (`git commit -am 'Add some feature'`)
5. Push to the branch (`git push origin my-new-feature`)
6. Create new Pull Request

## Running the Specs
    $ rake