Project

govkit-ca

0.01
No commit activity in last 3 years
No release in over 3 years
GovKit-CA lets you quickly get encapsulated Ruby objects for Canadian civic data.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.8
~> 1.16
>= 0
~> 3.1

Runtime

~> 0.10.0
~> 1.6
 Project Readme

GovKit-CA

Gem Version Build Status Dependency Status Coverage Status Code Climate

GovKit-CA is a Ruby gem that provides easy access to Canadian civic information around the web.

Installation

gem install govkit-ca

Represent API

GovKit-CA provides a Represent API client. First, create a client:

require 'govkit-ca'

client = GovKit::CA::Represent.new

Send a request to the /postcodes/ endpoint:

client.postcodes('A1A1A1')

Send a request to the /representative-sets/ endpoint:

client.representative_sets(limit: 0)

Send a request to the /representatives/ endpoint:

client.representatives(representative_set: 'toronto-city-council')

Send a request to the /boundary-sets/ endpoint:

client.boundary_sets(limit: 0)

Send a request to the /boundaries/ endpoint:

client.boundaries(boundary_set: 'toronto-wards')

Send a request to the /elections/ endpoint:

client.elections(limit: 0)

Send a request to the /candidates/ endpoint:

client.candidates(election: 'house-of-commons')

Read the full documentation on RubyDoc.info.

Postal code to electoral district lookup

GovKit-CA provides an API for free postal code to electoral district lookups, using the sources:

These sources can be unstable or incorrect.

require 'govkit-ca'

# Register the sources to use.
GovKit::CA::PostalCode::StrategySet.register(GovKit::CA::PostalCode::Strategy::ElectionsCa)
GovKit::CA::PostalCode::StrategySet.register(GovKit::CA::PostalCode::Strategy::LiberalCa)
GovKit::CA::PostalCode::StrategySet.register(GovKit::CA::PostalCode::Strategy::NDPCa)

GovKit::CA::PostalCode.find_electoral_districts_by_postal_code('A1A1A1') # [10007]
GovKit::CA::PostalCode.find_electoral_districts_by_postal_code('K0A1K0') # [35076]
GovKit::CA::PostalCode.find_electoral_districts_by_postal_code('H0H0H0') # raises GovKit::CA::ResourceNotFound

GovKit::CA::PostalCode.find_province_by_postal_code('A1A1A1') # "Newfoundland and Labrador"
GovKit::CA::PostalCode.find_province_by_postal_code('K0A1K0') # "Ontario"
GovKit::CA::PostalCode.find_province_by_postal_code('H0H0H0') # "Quebec"

Postal codes may contain lowercase letters. Spaces and non-alphanumeric characters are removed before processing.

GovKit-CA will raise GovKit::CA::ResourceNotFound if the electoral districts within a postal code cannot be determined, and GovKit::CA::InvalidRequest if a postal code is not properly formatted.

Acknowledgements

GovKit-CA interoperates with the Participatory Politics Foundation's GovKit. GovKit-CA is not affiliated with the Participatory Politics Foundation or GovKit.

Copyright (c) 2011 Open North Inc., released under the MIT license