IBGE Ruby
A gem ibge-ruby permite você integrar a sua aplicação Ruby on Rails com todos os serviços de localidade fornecidos pelo IBGE de maneira simples e rápida.
Instalação
Adicione essa linha no Gemfile da sua aplicação:
gem 'ibge-ruby'
E execute:
$ bundle
Ou instale diretamente com o comando:
$ gem install ibge-ruby
Métodos
Cada link direciona para a documentação do IBGE com a descrição do método, entrada e saída. Ao lado é a referência de como utilizá-lo com a gem.
-
Distritos
-
Distritos -
IBGE::Distrito.obter_distritos
-
Distritos por identificador -
IBGE::Distrito.distritos_por_id(ids)
-
Distritos por UF -
IBGE::Distrito.distritos_por_uf(ufs)
-
Distritos por mesorregião -
IBGE::Distrito.distritos_por_mesorregiao(mesorregioes)
-
Distritos por microrregião -
IBGE::Distrito.distritos_por_microrregiao(microrregioes)
-
Distritos por município -
IBGE::Distrito.distritos_por_municipio(municipios)
-
Distritos por região imediata -
IBGE::Distrito.distritos_por_regiao_imediata(regioes)
-
Distritos por região intermediária -
IBGE::Distrito.distritos_por_regiao_intermediaria(regioes)
-
Distritos por região -
IBGE::Distrito.distritos_por_regiao(regioes)
-
Distritos -
-
Mesorregiões
-
Mesorregiões -
IBGE::Mesorregiao.obter_mesorregioes
-
Mesorregiões por identificador -
IBGE::Mesorregiao.mesorregioes_por_id(ids)
-
Mesorregiões por UF -
IBGE::Mesorregiao.mesorregioes_por_uf(ufs)
-
Mesorregiões por região -
IBGE::Mesorregiao.mesorregioes_por_regiao(regioes)
-
Mesorregiões -
-
Microrregiões
-
Microrregiões -
IBGE::Microrregiao.obter_microrregioes
-
Microrregiões por identificador -
IBGE::Microrregiao.microrregioes_por_id(ids)
-
Microrregiões por UF -
IBGE::Microrregiao.microrregioes_por_uf(ufs)
-
Microrregiões por mesorregião -
IBGE::Microrregiao.microrregioes_por_mesorregiao(mesorregioes)
-
Microrregiões por região -
IBGE::Microrregiao.microrregioes_por_masorregiao(masorregioes)
-
Microrregiões -
-
Municípios
-
Municípios -
IBGE::Municipio.obter_municipios
-
Municípios por identificador -
IBGE::Municipio.municipios_por_id(ids)
-
Municípios por UF -
IBGE::Municipio.municipios_por_uf(ufs)
-
Municípios por mesorregião -
IBGE::Municipio.municipios_por_mesorregiao(mesorregioes)
-
Municípios por microrregião -
IBGE::Municipio.municipios_por_microrregiao(microrregioes)
-
Municípios por região imediata -
IBGE::Municipio.municipios_por_regiao_imediata(regioes)
-
Municípios por região intermediária -
IBGE::Municipio.municipios_por_regiao_intermediaria(regioes)
-
Municípios por região -
IBGE::Municipio.municipios_por_regiao(regioes)
-
Municípios -
-
Países
-
Países -
IBGE::Pais.obter_paises
-
Países por identificador -
IBGE::Pais.paises_por_identificador(ids)
-
Países -
-
Regiões
-
Regiões -
IBGE::Regiao.obter_regioes
-
Regiões por identificador -
IBGE::Regiao.regioes_por_identificador(ids)
-
Regiões -
-
Regiões Imediatas
-
Regiões imediatas -
IBGE::RegiaoImediata.obter_regioes_imediatas
-
Regiões imediatas por identificador -
IBGE::RegiaoImediata.regioes_imediatas_por_id(ids)
-
Regiões imediatas por UF -
IBGE::RegiaoImediata.regioes_imediatas_por_uf(ufs)
-
Regiões imediatas por regiões intermediárias -
IBGE::RegiaoImediata.regioes_imediatas_por_intermediaria(regioes)
-
Regiões imediatas por região -
IBGE::RegiaoImediata.regioes_imediatas_por_regiao(regioes)
-
Regiões imediatas -
-
Regiões Intermediárias
-
Regiões intermediárias -
IBGE::RegiaoIntermediaria.obter_regioes_intermediarias
-
Regiões intermediárias por identificador -
IBGE::RegiaoIntermediaria.regioes_intermediarias_por_id(ids)
-
Regiões intermediárias por UF -
IBGE::RegiaoIntermediaria.regioes_intermediarias_por_uf(ufs)
-
Regiões intermediárias por região -
IBGE::RegiaoIntermediaria.regioes_intermediarias_por_regiao(regioes)
-
Regiões intermediárias -
-
Subdistritos
-
Subdistritos -
IBGE::Subdistrito.obter_subdistritos
-
Subdistritos por identificador -
IBGE::Subdistrito.subdistritos_por_id(ids)
-
Subdistritos por UF -
IBGE::Subdistrito.subdistritos_por_uf(ufs)
-
Subdistritos por distrito -
IBGE::Subdistrito.subdistritos_por_distrito(distritos)
-
Subdistritos por mesorregião -
IBGE::Subdistrito.subdistritos_por_mesorregiao(mesorregioes)
-
Subdistritos por microrregião -
IBGE::Subdistrito.subdistritos_por_microrregiao(microrregioes)
-
Subdistritos por município -
IBGE::Subdistrito.subdistritos_por_municipio(municipios)
-
Subdistritos por região -
IBGE::Subdistrito.subdistritos_por_regiao(regioes)
-
Subdistritos -
-
UFs
-
UFs -
IBGE::UF.obter_ufs
-
UF por identificador -
IBGE::UF.ufs_por_identificador(ids)
-
UFs por região -
IBGE::UF.ufs_por_regiao(regioes)
-
UFs -
Observações
- Nas referências dos serviços, é possível enviar um ou mais parâmetros delimitados pelo caractere | (pipe). Na gem, ao utilizar serviços em que é possível enviar vários parâmetros (quase todos), utilize o formato de array.
❌ Serviço IBGE: 1|2|3
✅ Gem IBGE Ruby: [1, 2, 3]
ou ['1', '2', '3']
.
* Em alguns casos também é possível passar siglas. Verifique a seção Pesquisa por identificador (ID), sigla ou array de IDs/siglas.
- No momento, esta gem não oferece suporte aos query parameters
orderBy
eview
. Contudo, no Ruby, é possível simular oorderBy
da seguinte forma:
# Sem order by
regioes = IBGE::Regiao.obter_regioes.map(&:nome) #=> ['Norte', 'Nordeste', 'Sudeste', 'Sul', 'Centro-Oeste']
# Comportamento similar ao orderBy com Ruby
regioes = IBGE::Regiao.obter_regioes.sort_by(&:nome).map(&:nome) #=> ['Centro-Oeste', 'Nordeste', 'Norte', 'Sudeste', 'Sul']
Utilização
Abaixo estão alguns exemplos de utilização da gem. Verifique a documentação para uma referência mais completa.
Países
require 'ibge'
paises = IBGE::Pais.obter_paises
paises.map(&:nome) #=> ['Afeganistão', 'Albânia', 'Argélia', 'Andorra', 'Angola'...]
Regiões
regioes = IBGE::Regiao.obter_regioes
regioes.map(&:nome) #=> ['Norte', 'Nordeste', 'Sudeste', 'Sul', 'Centro-Oeste']
regioes.first #=> #<IBGE::Regiao:0x0000555f7e83de38 @id=1, @nome="Norte", @sigla="N">
Pesquisa por identificador (ID), sigla ou array de IDs/siglas
Em qualquer módulo que possua um método que faça referência aos recursos de Região ou UFs, é possível pesquisar pelo ID, sigla ou um array de IDs/siglas.
IBGE::Municipio.municipios_por_regiao('NE') #=> mesma coisa de IBGE::Municipio.municipios_por_regiao(2)
IBGE::Municipio.municipios_por_regiao(['N', 'NE']) #=> mesma coisa de IBGE::Municipio.municipios_por_regiao([1, 2])
IBGE::Distrito.distritos_por_uf('CE') #=> mesma coisa de IBGE::Distrito.distritos_por_uf(23)
IBGE::Distrito.distritos_por_uf(['BA', 'CE]) #=> mesma coisa de IBGE::Distrito.distritos_por_uf([29, 23])
Contribuindo
- Faça um fork
- Crie uma branch com a funcionalidade (
git checkout -b nova_funcionalidade
) - Faça um commit das suas mudanças (
git commit -am "[add] nova funcionalidade"
) - Faça um push para a branch (
git push origin nova_funcionalidade
) - Crie um pull request