ibge-ruby 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/.rspec +3 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +79 -0
- data/README.md +155 -0
- data/Rakefile +1 -0
- data/ibge-ruby.gemspec +28 -0
- data/lib/ibge/distrito.rb +179 -0
- data/lib/ibge/mesorregiao.rb +92 -0
- data/lib/ibge/microrregiao.rb +110 -0
- data/lib/ibge/municipio.rb +164 -0
- data/lib/ibge/pais.rb +53 -0
- data/lib/ibge/regiao.rb +55 -0
- data/lib/ibge/regiao_imediata.rb +110 -0
- data/lib/ibge/regiao_intermediaria.rb +92 -0
- data/lib/ibge/subdistrito.rb +160 -0
- data/lib/ibge/uf.rb +73 -0
- data/lib/ibge/utils.rb +7 -0
- data/lib/ibge/version.rb +3 -0
- data/lib/ibge.rb +18 -0
- data/spec/lib/ibge/distrito_spec.rb +250 -0
- data/spec/lib/ibge/mesorregiao_spec.rb +144 -0
- data/spec/lib/ibge/microrregiao_spec.rb +166 -0
- data/spec/lib/ibge/municipio_spec.rb +228 -0
- data/spec/lib/ibge/pais_spec.rb +62 -0
- data/spec/lib/ibge/regiao_imediata_spec.rb +162 -0
- data/spec/lib/ibge/regiao_intermediaria_spec.rb +140 -0
- data/spec/lib/ibge/regiao_spec.rb +90 -0
- data/spec/lib/ibge/subdistrito_spec.rb +228 -0
- data/spec/lib/ibge/uf_spec.rb +130 -0
- data/spec/spec_helper.rb +28 -0
- data/spec/vcr_cassettes/distrito/distritos_por_id_230440005.yml +55 -0
- data/spec/vcr_cassettes/distrito/distritos_por_id_230440005_230370905.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_mesorregiao_2303.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_mesorregiao_2303_2304.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_microrregiao_23016.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_microrregiao_23016_23017.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_municipio_2307254.yml +53 -0
- data/spec/vcr_cassettes/distrito/distritos_por_municipio_2307254_2302206.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_regiao_NE.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_regiao_N_NE.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_regiao_imediata_230001.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_regiao_imediata_230001_230002.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_regiao_intermediaria_2301.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_regiao_intermediaria_2301_2302.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_uf_BA_CE.yml +47 -0
- data/spec/vcr_cassettes/distrito/distritos_por_uf_CE.yml +51 -0
- data/spec/vcr_cassettes/distrito/obter_distritos.yml +55 -0
- data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_id_2303.yml +47 -0
- data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_id_2303_2304.yml +47 -0
- data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_regiao_NE.yml +53 -0
- data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_regiao_N_NE.yml +47 -0
- data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_uf_BA_CE.yml +47 -0
- data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_uf_CE.yml +49 -0
- data/spec/vcr_cassettes/mesorregiao/obter_mesorregioes.yml +55 -0
- data/spec/vcr_cassettes/microrregiao/microrregioes_por_id_23016.yml +47 -0
- data/spec/vcr_cassettes/microrregiao/microrregioes_por_id_23016_23017.yml +47 -0
- data/spec/vcr_cassettes/microrregiao/microrregioes_por_mesorregiao_2303.yml +55 -0
- data/spec/vcr_cassettes/microrregiao/microrregioes_por_mesorregiao_2303_2304.yml +47 -0
- data/spec/vcr_cassettes/microrregiao/microrregioes_por_regiao_NE.yml +47 -0
- data/spec/vcr_cassettes/microrregiao/microrregioes_por_regiao_N_NE.yml +47 -0
- data/spec/vcr_cassettes/microrregiao/microrregioes_por_uf_BA_CE.yml +47 -0
- data/spec/vcr_cassettes/microrregiao/microrregioes_por_uf_CE.yml +53 -0
- data/spec/vcr_cassettes/microrregiao/obter_microrregioes.yml +53 -0
- data/spec/vcr_cassettes/municipio/municipios_por_id_2307254.yml +53 -0
- data/spec/vcr_cassettes/municipio/municipios_por_id_2307254_2302206.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_mesorregiao_2303.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_mesorregiao_2303_2304.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_microrregiao_23016.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_microrregiao_23016_23017.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_regiao_NE.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_regiao_N_NE.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_regiao_imediata_230001.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_regiao_imediata_230001_230002.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_regiao_intermediaria_2301.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_regiao_intermediaria_2301_2302.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_uf_BA_CE.yml +47 -0
- data/spec/vcr_cassettes/municipio/municipios_por_uf_CE.yml +51 -0
- data/spec/vcr_cassettes/municipio/obter_municipios.yml +51 -0
- data/spec/vcr_cassettes/pais/obter_paises.yml +53 -0
- data/spec/vcr_cassettes/pais/paises_por_identificador_76.yml +53 -0
- data/spec/vcr_cassettes/pais/paises_por_identificador_76_300.yml +47 -0
- data/spec/vcr_cassettes/regiao/obter_regioes.yml +53 -0
- data/spec/vcr_cassettes/regiao/regioes_por_identificador_NE.yml +48 -0
- data/spec/vcr_cassettes/regiao/regioes_por_identificador_N_NE.yml +48 -0
- data/spec/vcr_cassettes/regiao_imediata/obter_regioes_imediatas.yml +53 -0
- data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_id_230001.yml +47 -0
- data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_id_230001_230002.yml +47 -0
- data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_intermediaria_2301.yml +47 -0
- data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_intermediaria_2301_2302.yml +47 -0
- data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_regiao_NE.yml +49 -0
- data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_regiao_N_NE.yml +49 -0
- data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_uf_BA_CE.yml +47 -0
- data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_uf_CE.yml +53 -0
- data/spec/vcr_cassettes/regiao_intermediaria/obter_regioes_intermediarias.yml +53 -0
- data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_id_2301.yml +47 -0
- data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_id_2301_2302.yml +47 -0
- data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_regiao_NE.yml +47 -0
- data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_regiao_N_NE.yml +47 -0
- data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_uf_BA_CE.yml +47 -0
- data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_uf_CE.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/obter_subdistritos.yml +53 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_distrito_230440005.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_distrito_230440005_230370905.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_id_23044000512.yml +49 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_id_23044000512_23044006511.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_mesorregiao_23016.yml +46 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_mesorregiao_23016_23017.yml +46 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_mesorregiao_2303.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_mesorregiao_2303_2304.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_microrregiao_23016.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_microrregiao_23016_23017.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_municipio_2304400.yml +55 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_municipio_2304400_2927408.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_municipio_2307254.yml +46 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_municipio_2307254_2302206.yml +46 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_regiao_NE.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_regiao_N_NE.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_uf_BA_CE.yml +47 -0
- data/spec/vcr_cassettes/subdistrito/subdistritos_por_uf_CE.yml +53 -0
- data/spec/vcr_cassettes/uf/obter_ufs.yml +51 -0
- data/spec/vcr_cassettes/uf/ufs_por_identificador_BA_CE.yml +47 -0
- data/spec/vcr_cassettes/uf/ufs_por_identificador_CE.yml +55 -0
- data/spec/vcr_cassettes/uf/ufs_por_regiao_N.yml +53 -0
- data/spec/vcr_cassettes/uf/ufs_por_regiao_N_NE.yml +47 -0
- metadata +384 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4c489ef9667211b1e342b3518e11003253410eb2b613e44c02ff7772d5222ab4
|
4
|
+
data.tar.gz: e031efd350860c4643af376f296e43589584abb8378ce0ff2a7709c93f7fdbd1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4a163369d05c8b59b8e458dd84195540229e516d3240b8236e85b802a837b60dc92c4cb308dd3b2311832a8d211875c46a883420dee35ede5314cb94455fd26c
|
7
|
+
data.tar.gz: 6e33b495084523a3203ffd6152ad074ac9f40874dee02565e9dcc05563627c5dd971de8721321a2316a3d230436db2a040ff56f235723457cb5d2e3e8d575b60
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
ibge-ruby (1.0.0)
|
5
|
+
rest-client (~> 2.0.2)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
addressable (2.8.0)
|
11
|
+
public_suffix (>= 2.0.2, < 5.0)
|
12
|
+
byebug (11.1.3)
|
13
|
+
coderay (1.1.3)
|
14
|
+
crack (0.4.5)
|
15
|
+
rexml
|
16
|
+
diff-lcs (1.5.0)
|
17
|
+
docile (1.4.0)
|
18
|
+
domain_name (0.5.20190701)
|
19
|
+
unf (>= 0.0.5, < 1.0.0)
|
20
|
+
hashdiff (1.0.1)
|
21
|
+
http-cookie (1.0.4)
|
22
|
+
domain_name (~> 0.5)
|
23
|
+
method_source (1.0.0)
|
24
|
+
mime-types (3.4.1)
|
25
|
+
mime-types-data (~> 3.2015)
|
26
|
+
mime-types-data (3.2022.0105)
|
27
|
+
netrc (0.11.0)
|
28
|
+
pry (0.14.1)
|
29
|
+
coderay (~> 1.1)
|
30
|
+
method_source (~> 1.0)
|
31
|
+
public_suffix (4.0.6)
|
32
|
+
rest-client (2.0.2)
|
33
|
+
http-cookie (>= 1.0.2, < 2.0)
|
34
|
+
mime-types (>= 1.16, < 4.0)
|
35
|
+
netrc (~> 0.8)
|
36
|
+
rexml (3.2.5)
|
37
|
+
rspec (3.10.0)
|
38
|
+
rspec-core (~> 3.10.0)
|
39
|
+
rspec-expectations (~> 3.10.0)
|
40
|
+
rspec-mocks (~> 3.10.0)
|
41
|
+
rspec-core (3.10.1)
|
42
|
+
rspec-support (~> 3.10.0)
|
43
|
+
rspec-expectations (3.10.1)
|
44
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
45
|
+
rspec-support (~> 3.10.0)
|
46
|
+
rspec-mocks (3.10.2)
|
47
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
48
|
+
rspec-support (~> 3.10.0)
|
49
|
+
rspec-support (3.10.3)
|
50
|
+
simplecov (0.21.2)
|
51
|
+
docile (~> 1.1)
|
52
|
+
simplecov-html (~> 0.11)
|
53
|
+
simplecov_json_formatter (~> 0.1)
|
54
|
+
simplecov-html (0.12.3)
|
55
|
+
simplecov_json_formatter (0.1.3)
|
56
|
+
unf (0.1.4)
|
57
|
+
unf_ext
|
58
|
+
unf_ext (0.0.8)
|
59
|
+
vcr (3.0.3)
|
60
|
+
webmock (3.14.0)
|
61
|
+
addressable (>= 2.8.0)
|
62
|
+
crack (>= 0.3.2)
|
63
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
64
|
+
|
65
|
+
PLATFORMS
|
66
|
+
x86_64-linux
|
67
|
+
|
68
|
+
DEPENDENCIES
|
69
|
+
bundler (~> 2.0)
|
70
|
+
byebug (~> 11.1.3)
|
71
|
+
ibge-ruby!
|
72
|
+
pry (~> 0.14.1)
|
73
|
+
rspec (~> 3.10.0)
|
74
|
+
simplecov (~> 0.18)
|
75
|
+
vcr (~> 3.0)
|
76
|
+
webmock (~> 3.14.0)
|
77
|
+
|
78
|
+
BUNDLED WITH
|
79
|
+
2.2.21
|
data/README.md
ADDED
@@ -0,0 +1,155 @@
|
|
1
|
+
# IBGE Ruby
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/ibge-ruby.svg)](http://badge.fury.io/rb/ibge-ruby)
|
4
|
+
|
5
|
+
A gem ibge-ruby permite você integrar a sua aplicação Ruby on Rails com todos os [serviços de localidade](https://servicodados.ibge.gov.br/api/docs/localidades) fornecidos pelo IBGE de maneira simples e rápida.
|
6
|
+
|
7
|
+
## Instalação
|
8
|
+
|
9
|
+
Adicione essa linha no Gemfile da sua aplicação:
|
10
|
+
|
11
|
+
gem 'ibge-ruby'
|
12
|
+
|
13
|
+
E execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Ou instale diretamente com o comando:
|
18
|
+
|
19
|
+
$ gem install ibge-ruby
|
20
|
+
|
21
|
+
## Métodos
|
22
|
+
|
23
|
+
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.
|
24
|
+
|
25
|
+
* __Distritos__
|
26
|
+
* [Distritos](https://servicodados.ibge.gov.br/api/docs/localidades#api-Distritos-distritosGet) - `IBGE::Distrito.obter_distritos`
|
27
|
+
* [Distritos por identificador](https://servicodados.ibge.gov.br/api/docs/localidades#api-Distritos-distritosIdGet) - `IBGE::Distrito.distritos_por_id(ids)`
|
28
|
+
* [Distritos por UF](https://servicodados.ibge.gov.br/api/docs/localidades#api-Distritos-estadosUFDistritosGet) - `IBGE::Distrito.distritos_por_uf(ufs)`
|
29
|
+
* [Distritos por mesorregião](https://servicodados.ibge.gov.br/api/docs/localidades#api-Distritos-mesorregioesMesorregiaoDistritosGet) - `IBGE::Distrito.distritos_por_mesorregiao(mesorregioes)`
|
30
|
+
* [Distritos por microrregião](https://servicodados.ibge.gov.br/api/docs/localidades#api-Distritos-microrregioesMicrorregiaoDistritosGet) - `IBGE::Distrito.distritos_por_microrregiao(microrregioes)`
|
31
|
+
* [Distritos por município](https://servicodados.ibge.gov.br/api/docs/localidades#api-Distritos-municipiosMunicipioDistritosGet) - `IBGE::Distrito.distritos_por_municipio(municipios)`
|
32
|
+
* [Distritos por região imediata](https://servicodados.ibge.gov.br/api/docs/localidades#api-Distritos-regioesImediatasRegiaoImediataDistritosGet) - `IBGE::Distrito.distritos_por_regiao_imediata(regioes)`
|
33
|
+
* [Distritos por região intermediária](https://servicodados.ibge.gov.br/api/docs/localidades#api-Distritos-regioesIntermediariasRegiaoIntermediariaDistritosGet) - `IBGE::Distrito.distritos_por_regiao_intermediaria(regioes)`
|
34
|
+
* [Distritos por região](https://servicodados.ibge.gov.br/api/docs/localidades#api-Distritos-regioesMacrorregiaoDistritosGet) - `IBGE::Distrito.distritos_por_regiao(regioes)`
|
35
|
+
|
36
|
+
* __Mesorregiões__
|
37
|
+
* [Mesorregiões](https://servicodados.ibge.gov.br/api/docs/localidades#api-Mesorregioes-mesorregioesGet) - `IBGE::Mesorregiao.obter_mesorregioes`
|
38
|
+
* [Mesorregiões por identificador](https://servicodados.ibge.gov.br/api/docs/localidades#api-Mesorregioes-mesorregioesMesorregiaoGet) - `IBGE::Mesorregiao.mesorregioes_por_id(ids)`
|
39
|
+
* [Mesorregiões por UF](https://servicodados.ibge.gov.br/api/docs/localidades#api-Mesorregioes-estadosUFMesorregioesGet) - `IBGE::Mesorregiao.mesorregioes_por_uf(ufs)`
|
40
|
+
* [Mesorregiões por região](https://servicodados.ibge.gov.br/api/docs/localidades#api-Mesorregioes-regioesMacrorregiaoMesorregioesGet) - `IBGE::Mesorregiao.mesorregioes_por_regiao(regioes)`
|
41
|
+
|
42
|
+
* __Microrregiões__
|
43
|
+
* [Microrregiões](https://servicodados.ibge.gov.br/api/docs/localidades#api-Microrregioes-microrregioesGet) - `IBGE::Microrregiao.obter_microrregioes`
|
44
|
+
* [Microrregiões por identificador](https://servicodados.ibge.gov.br/api/docs/localidades#api-Microrregioes-microrregioesMicrorregiaoGet) - `IBGE::Microrregiao.microrregioes_por_id(ids)`
|
45
|
+
* [Microrregiões por UF](https://servicodados.ibge.gov.br/api/docs/localidades#api-Microrregioes-estadosUFMicrorregioesGet) - `IBGE::Microrregiao.microrregioes_por_uf(ufs)`
|
46
|
+
* [Microrregiões por mesorregião](https://servicodados.ibge.gov.br/api/docs/localidades#api-Microrregioes-mesorregioesMesorregiaoMicrorregioesGet) - `IBGE::Microrregiao.microrregioes_por_mesorregiao(mesorregioes)`
|
47
|
+
* [Microrregiões por região](https://servicodados.ibge.gov.br/api/docs/localidades#api-Microrregioes-regioesMacrorregiaoMicrorregioesGet) - `IBGE::Microrregiao.microrregioes_por_masorregiao(masorregioes)`
|
48
|
+
|
49
|
+
* __Municípios__
|
50
|
+
* [Municípios](https://servicodados.ibge.gov.br/api/docs/localidades#api-Municipios-municipiosGet) - `IBGE::Municipio.obter_municipios`
|
51
|
+
* [Municípios por identificador](https://servicodados.ibge.gov.br/api/docs/localidades#api-Municipios-municipiosMunicipioGet) - `IBGE::Municipio.municipios_por_id(ids)`
|
52
|
+
* [Municípios por UF](https://servicodados.ibge.gov.br/api/docs/localidades#api-Municipios-estadosUFMunicipiosGet) - `IBGE::Municipio.municipios_por_uf(ufs)`
|
53
|
+
* [Municípios por mesorregião](https://servicodados.ibge.gov.br/api/docs/localidades#api-Municipios-mesorregioesMesorregiaoMunicipiosGet) - `IBGE::Municipio.municipios_por_mesorregiao(mesorregioes)`
|
54
|
+
* [Municípios por microrregião](https://servicodados.ibge.gov.br/api/docs/localidades#api-Municipios-microrregioesMicrorregiaoMunicipiosGet) - `IBGE::Municipio.municipios_por_microrregiao(microrregioes)`
|
55
|
+
* [Municípios por região imediata](https://servicodados.ibge.gov.br/api/docs/localidades#api-Municipios-regioesImediatasRegiaoImediataMunicipiosGet) - `IBGE::Municipio.municipios_por_regiao_imediata(regioes)`
|
56
|
+
* [Municípios por região intermediária](https://servicodados.ibge.gov.br/api/docs/localidades#api-Municipios-regioesIntermediariasRegiaoIntermediariaMunicipiosGet) - `IBGE::Municipio.municipios_por_regiao_intermediaria(regioes)`
|
57
|
+
* [Municípios por região](https://servicodados.ibge.gov.br/api/docs/localidades#api-Municipios-regioesMacrorregiaoMunicipiosGet) - `IBGE::Municipio.municipios_por_regiao(regioes)`
|
58
|
+
|
59
|
+
* __Países__
|
60
|
+
* [Países](https://servicodados.ibge.gov.br/api/docs/localidades#api-Paises-paisesGet) - `IBGE::Pais.obter_paises`
|
61
|
+
* [Países por identificador](https://servicodados.ibge.gov.br/api/docs/localidades#api-Paises-paisesPaisGet) - `IBGE::Pais.paises_por_identificador(ids)`
|
62
|
+
|
63
|
+
* __Regiões__
|
64
|
+
* [Regiões](https://servicodados.ibge.gov.br/api/docs/localidades#api-Regioes-regioesGet) - `IBGE::Regiao.obter_regioes`
|
65
|
+
* [Regiões por identificador](https://servicodados.ibge.gov.br/api/docs/localidades#api-Regioes-regioesMacrorregiaoGet) - `IBGE::Regiao.regioes_por_identificador(ids)`
|
66
|
+
|
67
|
+
* __Regiões Imediatas__
|
68
|
+
* [Regiões imediatas](https://servicodados.ibge.gov.br/api/docs/localidades#api-RegioesImediatas-regioesImediatasGet) - `IBGE::RegiaoImediata.obter_regioes_imediatas`
|
69
|
+
* [Regiões imediatas por identificador](https://servicodados.ibge.gov.br/api/docs/localidades#api-RegioesImediatas-regioesImediatasRegiaoImediataGet) - `IBGE::RegiaoImediata.regioes_imediatas_por_id(ids)`
|
70
|
+
* [Regiões imediatas por UF](https://servicodados.ibge.gov.br/api/docs/localidades#api-RegioesImediatas-estadosUFRegioesImediatasGet) - `IBGE::RegiaoImediata.regioes_imediatas_por_uf(ufs)`
|
71
|
+
* [Regiões imediatas por regiões intermediárias](https://servicodados.ibge.gov.br/api/docs/localidades#api-RegioesImediatas-regioesIntermediariasRegiaoIntermediariaRegioesImediatasGet) - `IBGE::RegiaoImediata.regioes_imediatas_por_intermediaria(regioes)`
|
72
|
+
* [Regiões imediatas por região](https://servicodados.ibge.gov.br/api/docs/localidades#api-RegioesImediatas-regioesMacrorregiaoRegioesImediatasGet) - `IBGE::RegiaoImediata.regioes_imediatas_por_regiao(regioes)`
|
73
|
+
|
74
|
+
* __Regiões Intermediárias__
|
75
|
+
* [Regiões intermediárias](https://servicodados.ibge.gov.br/api/docs/localidades#api-RegioesIntermediarias-regioesIntermediariasGet) - `IBGE::RegiaoIntermediaria.obter_regioes_intermediarias`
|
76
|
+
* [Regiões intermediárias por identificador](https://servicodados.ibge.gov.br/api/docs/localidades#api-RegioesIntermediarias-regioesIntermediariasRegiaoIntermediariaGet) - `IBGE::RegiaoIntermediaria.regioes_intermediarias_por_id(ids)`
|
77
|
+
* [Regiões intermediárias por UF](https://servicodados.ibge.gov.br/api/docs/localidades#api-RegioesIntermediarias-estadosUFRegioesIntermediariasGet) - `IBGE::RegiaoIntermediaria.regioes_intermediarias_por_uf(ufs)`
|
78
|
+
* [Regiões intermediárias por região](https://servicodados.ibge.gov.br/api/docs/localidades#api-RegioesIntermediarias-regioesMacrorregiaoRegioesIntermediariasGet) - `IBGE::RegiaoIntermediaria.regioes_intermediarias_por_regiao(regioes)`
|
79
|
+
|
80
|
+
* __Subdistritos__
|
81
|
+
* [Subdistritos](https://servicodados.ibge.gov.br/api/docs/localidades#api-Subdistritos-subdistritosGet) - `IBGE::Subdistrito.obter_subdistritos`
|
82
|
+
* [Subdistritos por identificador](https://servicodados.ibge.gov.br/api/docs/localidades#api-Subdistritos-subdistritosIdGet) - `IBGE::Subdistrito.subdistritos_por_id(ids)`
|
83
|
+
* [Subdistritos por UF](https://servicodados.ibge.gov.br/api/docs/localidades#api-Subdistritos-estadosUFSubdistritosGet) - `IBGE::Subdistrito.subdistritos_por_uf(ufs)`
|
84
|
+
* [Subdistritos por distrito](https://servicodados.ibge.gov.br/api/docs/localidades#api-Subdistritos-distritosDistritoSubdistritosGet) - `IBGE::Subdistrito.subdistritos_por_distrito(distritos)`
|
85
|
+
* [Subdistritos por mesorregião](https://servicodados.ibge.gov.br/api/docs/localidades#api-Subdistritos-mesorregioesMesorregiaoSubdistritosGet) - `IBGE::Subdistrito.subdistritos_por_mesorregiao(mesorregioes)`
|
86
|
+
* [Subdistritos por microrregião](https://servicodados.ibge.gov.br/api/docs/localidades#api-Subdistritos-microrregioesMicrorregiaoSubdistritosGet) - `IBGE::Subdistrito.subdistritos_por_microrregiao(microrregioes)`
|
87
|
+
* [Subdistritos por município](https://servicodados.ibge.gov.br/api/docs/localidades#api-Subdistritos-municipiosMunicipioSubdistritosGet) - `IBGE::Subdistrito.subdistritos_por_municipio(municipios)`
|
88
|
+
* [Subdistritos por região](https://servicodados.ibge.gov.br/api/docs/localidades#api-Subdistritos-regioesMacrorregiaoSubdistritosGet) - `IBGE::Subdistrito.subdistritos_por_regiao(regioes)`
|
89
|
+
|
90
|
+
* __UFs__
|
91
|
+
* [UFs](https://servicodados.ibge.gov.br/api/docs/localidades#api-UFs-estadosGet) - `IBGE::UF.obter_ufs`
|
92
|
+
* [UF por identificador](https://servicodados.ibge.gov.br/api/docs/localidades#api-UFs-estadosUFGet) - `IBGE::UF.ufs_por_identificador(ids)`
|
93
|
+
* [UFs por região](https://servicodados.ibge.gov.br/api/docs/localidades#api-UFs-regioesMacrorregiaoEstadosGet) - `IBGE::UF.ufs_por_regiao(regioes)`
|
94
|
+
|
95
|
+
### Observações
|
96
|
+
|
97
|
+
1. Nas referências dos serviços, é possível enviar um ou mais parâmetros delimitados pelo caractere | (pipe).
|
98
|
+
Na gem, ao utilizar serviços em que é possível enviar vários parâmetros (quase todos), utilize o formato de **array**.
|
99
|
+
|
100
|
+
❌ **Serviço IBGE**: `1|2|3`
|
101
|
+
|
102
|
+
✅ **Gem IBGE Ruby**: `[1, 2, 3]` ou `['1', '2', '3']`.
|
103
|
+
|
104
|
+
<sub>* Em alguns casos também é possível passar siglas. Verifique a seção Pesquisa por identificador (ID), sigla ou array de IDs/siglas.</sub>
|
105
|
+
|
106
|
+
2. No momento, esta gem não oferece suporte aos query parameters `orderBy` e `view`. Contudo, no Ruby, é possível simular o `orderBy` da seguinte forma:
|
107
|
+
|
108
|
+
```ruby
|
109
|
+
# Sem order by
|
110
|
+
regioes = IBGE::Regiao.obter_regioes.map(&:nome) #=> ['Norte', 'Nordeste', 'Sudeste', 'Sul', 'Centro-Oeste']
|
111
|
+
|
112
|
+
# Comportamento similar ao orderBy com Ruby
|
113
|
+
regioes = IBGE::Regiao.obter_regioes.sort_by(&:nome).map(&:nome) #=> ['Centro-Oeste', 'Nordeste', 'Norte', 'Sudeste', 'Sul']
|
114
|
+
```
|
115
|
+
|
116
|
+
## Utilização
|
117
|
+
|
118
|
+
Abaixo estão alguns exemplos de utilização da gem. Verifique a [documentação](https://www.rubydoc.info/gems/ibge-ruby/main) para uma referência mais completa.
|
119
|
+
|
120
|
+
### Países
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
require 'ibge'
|
124
|
+
|
125
|
+
paises = IBGE::Pais.obter_paises
|
126
|
+
paises.map(&:nome) #=> ['Afeganistão', 'Albânia', 'Argélia', 'Andorra', 'Angola'...]
|
127
|
+
```
|
128
|
+
|
129
|
+
### Regiões
|
130
|
+
|
131
|
+
```ruby
|
132
|
+
regioes = IBGE::Regiao.obter_regioes
|
133
|
+
regioes.map(&:nome) #=> ['Norte', 'Nordeste', 'Sudeste', 'Sul', 'Centro-Oeste']
|
134
|
+
regioes.first #=> #<IBGE::Regiao:0x0000555f7e83de38 @id=1, @nome="Norte", @sigla="N">
|
135
|
+
```
|
136
|
+
|
137
|
+
### Pesquisa por identificador (ID), sigla ou array de IDs/siglas
|
138
|
+
|
139
|
+
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.
|
140
|
+
|
141
|
+
```ruby
|
142
|
+
IBGE::Municipio.municipios_por_regiao('NE') #=> mesma coisa de IBGE::Municipio.municipios_por_regiao(2)
|
143
|
+
IBGE::Municipio.municipios_por_regiao(['N', 'NE']) #=> mesma coisa de IBGE::Municipio.municipios_por_regiao([1, 2])
|
144
|
+
|
145
|
+
IBGE::Distrito.distritos_por_uf('CE') #=> mesma coisa de IBGE::Distrito.distritos_por_uf(23)
|
146
|
+
IBGE::Distrito.distritos_por_uf(['BA', 'CE]) #=> mesma coisa de IBGE::Distrito.distritos_por_uf([29, 23])
|
147
|
+
```
|
148
|
+
|
149
|
+
## Contribuindo
|
150
|
+
|
151
|
+
1. Faça um fork
|
152
|
+
2. Crie uma branch com a funcionalidade (`git checkout -b nova_funcionalidade`)
|
153
|
+
3. Faça um commit das suas mudanças (`git commit -am "[add] nova funcionalidade"`)
|
154
|
+
4. Faça um push para a branch (`git push origin nova_funcionalidade`)
|
155
|
+
5. Crie um pull request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
data/ibge-ruby.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require 'ibge/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'ibge-ruby'
|
7
|
+
spec.version = IBGE::VERSION
|
8
|
+
spec.summary = 'Wrapper do serviço do IBGE para Ruby.'
|
9
|
+
spec.authors = ["Andréa Alencar"]
|
10
|
+
spec.email = 'andreaflether@gmail.com'
|
11
|
+
spec.homepage = 'https://github.com/andreaflether/ibge-ruby'
|
12
|
+
spec.license = 'MIT'
|
13
|
+
|
14
|
+
spec.files = `git ls-files -z`.split("\x0")
|
15
|
+
spec.test_files = spec.files.grep(/^spec\//)
|
16
|
+
spec.require_paths = ['lib']
|
17
|
+
|
18
|
+
spec.add_development_dependency 'pry', '~> 0.14.1'
|
19
|
+
spec.add_development_dependency 'bundler', '~> 2.0'
|
20
|
+
spec.add_development_dependency 'byebug', '~> 11.1.3'
|
21
|
+
|
22
|
+
spec.add_development_dependency 'simplecov', '~> 0.18'
|
23
|
+
spec.add_development_dependency 'webmock', '~> 3.14.0'
|
24
|
+
spec.add_development_dependency 'rspec', '~> 3.10.0'
|
25
|
+
spec.add_development_dependency 'vcr', '~> 3.0'
|
26
|
+
|
27
|
+
spec.add_dependency 'rest-client', '~> 2.0.2'
|
28
|
+
end
|
@@ -0,0 +1,179 @@
|
|
1
|
+
module IBGE
|
2
|
+
class Distrito
|
3
|
+
attr_accessor :id, :nome, :municipio
|
4
|
+
|
5
|
+
def initialize(options = {})
|
6
|
+
@id = options['id']
|
7
|
+
@nome = options['nome']
|
8
|
+
@municipio = Municipio.new(options['municipio'])
|
9
|
+
end
|
10
|
+
|
11
|
+
# Obtém o conjunto de distritos do Brasil.
|
12
|
+
#
|
13
|
+
# @return [Array<Distrito>]
|
14
|
+
#
|
15
|
+
# @example
|
16
|
+
# distritos = IBGE::Distrito.obter_distritos
|
17
|
+
# distritos.first.nome #=> "Abadia de Goiás"
|
18
|
+
def self.obter_distritos
|
19
|
+
resposta = RestClient.get("#{BASE_URL}/distritos")
|
20
|
+
|
21
|
+
tratar_retorno(resposta)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Obtém o conjunto de distritos do Brasil a partir dos respectivos identificadores.
|
25
|
+
# Pode ser informado um único ID ou um array de IDs.
|
26
|
+
#
|
27
|
+
# @param ids [String, Integer, Array] Um ou mais identificadores de distritos.
|
28
|
+
# @return [Array<Distrito>]
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# distritos = IBGE::Distrito.distritos_por_id(230440005)
|
32
|
+
# distritos.first.nome #=> "Fortaleza"
|
33
|
+
#
|
34
|
+
# distritos = IBGE::Distrito.distritos_por_id([230440005, 230370905])
|
35
|
+
def self.distritos_por_id(ids)
|
36
|
+
ids = IBGE.formatar(ids)
|
37
|
+
resposta = RestClient.get("#{BASE_URL}/distritos/#{ids}")
|
38
|
+
|
39
|
+
tratar_retorno(resposta)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Obtém o conjunto de distritos do Brasil a partir dos identificadores das Unidades da Federação.
|
43
|
+
# Pode ser informada a sigla, identificador (ID) ou um array de siglas/identificadores.
|
44
|
+
#
|
45
|
+
# @param ufs [String, Integer, Array]
|
46
|
+
# @return [Array<Distrito>]
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
# distritos = IBGE::Distrito.distritos_por_uf('CE')
|
50
|
+
# distritos.last.nome #=> "Quatiguaba"
|
51
|
+
#
|
52
|
+
# IBGE::Distrito.distritos_por_uf(['BA', 'CE'])
|
53
|
+
# IBGE::Distrito.distritos_por_uf(23)
|
54
|
+
def self.distritos_por_uf(ufs)
|
55
|
+
ufs = IBGE.formatar(ufs)
|
56
|
+
resposta = RestClient.get("#{BASE_URL}/estados/#{ufs}/distritos")
|
57
|
+
|
58
|
+
tratar_retorno(resposta)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Obtém o conjunto de distritos do Brasil a partir dos identificadores das regiões.
|
62
|
+
# Pode ser informada a sigla, identificador (ID) ou um array de siglas/identificadores.
|
63
|
+
#
|
64
|
+
# @param regioes [String, Integer, Array]
|
65
|
+
# @return [Array<Distrito>]
|
66
|
+
#
|
67
|
+
# @example
|
68
|
+
# distritos = IBGE::Distrito.distritos_por_regiao('NE')
|
69
|
+
# distritos.last.nome #=> "Zé Doca"
|
70
|
+
#
|
71
|
+
# IBGE::Distrito.distritos_por_regiao(['NE', 'N'])
|
72
|
+
# IBGE::Distrito.distritos_por_regiao([1, 2])
|
73
|
+
def self.distritos_por_regiao(regioes)
|
74
|
+
regioes = IBGE.formatar(regioes)
|
75
|
+
resposta = RestClient.get("#{BASE_URL}/regioes/#{regioes}/distritos")
|
76
|
+
|
77
|
+
tratar_retorno(resposta)
|
78
|
+
end
|
79
|
+
|
80
|
+
# Obtém o conjunto de distritos do Brasil a partir dos identificadores dos municípios.
|
81
|
+
# Pode ser informado um único ID ou um array de IDs.
|
82
|
+
#
|
83
|
+
# @param municipios [String, Integer, Array]
|
84
|
+
# @return [Array<Distrito>]
|
85
|
+
#
|
86
|
+
# @example
|
87
|
+
# distritos = IBGE::Distrito.distritos_por_municipio('2307254')
|
88
|
+
# distritos.first.nome #=> "Jijoca de Jericoacoara"
|
89
|
+
#
|
90
|
+
# distritos = IBGE::Distrito.distritos_por_regiao(["2307254", "2302206"])
|
91
|
+
def self.distritos_por_municipio(municipios)
|
92
|
+
municipios = IBGE.formatar(municipios)
|
93
|
+
resposta = RestClient.get("#{BASE_URL}/municipios/#{municipios}/distritos")
|
94
|
+
|
95
|
+
tratar_retorno(resposta)
|
96
|
+
end
|
97
|
+
|
98
|
+
# Obtém o conjunto de distritos do Brasil a partir dos identificadores das regiões imediatas.
|
99
|
+
# Pode ser informado um único ID ou um array de IDs.
|
100
|
+
#
|
101
|
+
# @param regioes [String, Integer, Array] Um ou mais identificadores de regiões imediatas.
|
102
|
+
# @return [Array<Distrito>]
|
103
|
+
#
|
104
|
+
# @example
|
105
|
+
# distritos = IBGE::Distrito.distritos_por_regiao_imediata(230001)
|
106
|
+
# distritos.first.nome #=> "Aquiraz"
|
107
|
+
#
|
108
|
+
# distritos = IBGE::Distrito.distritos_por_regiao_imediata([230001, 230002])
|
109
|
+
def self.distritos_por_regiao_imediata(regioes)
|
110
|
+
regioes = IBGE.formatar(regioes)
|
111
|
+
resposta = RestClient.get("#{BASE_URL}/regioes-imediatas/#{regioes}/distritos")
|
112
|
+
|
113
|
+
tratar_retorno(resposta)
|
114
|
+
end
|
115
|
+
|
116
|
+
# Obtém o conjunto de distritos do Brasil a partir dos identificadores das regiões intermediárias.
|
117
|
+
# Pode ser informado um único ID ou um array de IDs.
|
118
|
+
#
|
119
|
+
# @param regioes [String, Integer, Array] Um ou mais identificadores de regiões intermediárias.
|
120
|
+
# @return [Array<Distrito>]
|
121
|
+
#
|
122
|
+
# @example
|
123
|
+
# distritos = IBGE::Distrito.distritos_por_regiao_intermediaria(2301)
|
124
|
+
# distritos.first.nome #=> "Acarape"
|
125
|
+
#
|
126
|
+
# distritos = IBGE::Distrito.distritos_por_regiao_intermediaria([2301, 2302])
|
127
|
+
def self.distritos_por_regiao_intermediaria(regioes)
|
128
|
+
regioes = IBGE.formatar(regioes)
|
129
|
+
resposta = RestClient.get("#{BASE_URL}/regioes-intermediarias/#{regioes}/distritos")
|
130
|
+
|
131
|
+
tratar_retorno(resposta)
|
132
|
+
end
|
133
|
+
|
134
|
+
# Obtém o conjunto de distritos do Brasil a partir dos identificadores das mesorregiões.
|
135
|
+
# Pode ser informado um único ID ou um array de IDs.
|
136
|
+
#
|
137
|
+
# @param mesorregioes [String, Integer, Array] Um ou mais identificadores de mesorregiões.
|
138
|
+
# @return [Array<Distrito>]
|
139
|
+
#
|
140
|
+
# @example
|
141
|
+
# distritos = IBGE::Distrito.distritos_por_mesorregiao(2303)
|
142
|
+
# distritos.first.nome #=> "Aquiraz"
|
143
|
+
#
|
144
|
+
# distritos = IBGE::Distrito.distritos_por_mesorregiao([2303, 2304])
|
145
|
+
def self.distritos_por_mesorregiao(mesorregioes)
|
146
|
+
mesorregioes = IBGE.formatar(mesorregioes)
|
147
|
+
resposta = RestClient.get("#{BASE_URL}/mesorregioes/#{mesorregioes}/distritos")
|
148
|
+
|
149
|
+
tratar_retorno(resposta)
|
150
|
+
end
|
151
|
+
|
152
|
+
# Obtém o conjunto de distritos do Brasil a partir dos identificadores das microrregiões.
|
153
|
+
# Pode ser informado um único ID ou um array de IDs.
|
154
|
+
#
|
155
|
+
# @param microrregioes [String, Integer, Array] Um ou mais identificadores de microrregiões.
|
156
|
+
# @return [Array<Distrito>]
|
157
|
+
#
|
158
|
+
# @example
|
159
|
+
# distritos = IBGE::Distrito.distritos_por_microrregiao(23016)
|
160
|
+
# distritos.last.nome #=> "Senador Carlos Jereissati"
|
161
|
+
#
|
162
|
+
# distritos = IBGE::Distrito.distritos_por_microrregiao([23016, 23017])
|
163
|
+
def self.distritos_por_microrregiao(microrregioes)
|
164
|
+
microrregioes = IBGE.formatar(microrregioes)
|
165
|
+
resposta = RestClient.get("#{BASE_URL}/microrregioes/#{microrregioes}/distritos")
|
166
|
+
|
167
|
+
tratar_retorno(resposta)
|
168
|
+
end
|
169
|
+
|
170
|
+
private
|
171
|
+
|
172
|
+
def self.tratar_retorno(resposta)
|
173
|
+
distritos = JSON.parse(resposta.body)
|
174
|
+
|
175
|
+
distritos.map { |distrito| Distrito.new(distrito) }
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
@@ -0,0 +1,92 @@
|
|
1
|
+
module IBGE
|
2
|
+
class Mesorregiao
|
3
|
+
attr_accessor :id, :nome, :uf
|
4
|
+
|
5
|
+
def initialize(options = {})
|
6
|
+
@id = options['id']
|
7
|
+
@nome = options['nome']
|
8
|
+
@uf = IBGE::UF.new(options['UF'])
|
9
|
+
end
|
10
|
+
|
11
|
+
# Obtém o conjunto de mesorregiões do Brasil.
|
12
|
+
#
|
13
|
+
# @return [Array<Mesorregiao>]
|
14
|
+
#
|
15
|
+
# @example
|
16
|
+
# mesorregioes = IBGE::Mesorregiao.obter_mesorregioes
|
17
|
+
# mesorregioes.first.nome #=> "Madeira-Guaporé"
|
18
|
+
def self.obter_mesorregioes
|
19
|
+
resposta = RestClient.get("#{BASE_URL}/mesorregioes")
|
20
|
+
|
21
|
+
tratar_retorno(resposta)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Obtém o conjunto de mesorregiões do Brasil a partir dos identificadores das Unidades da Federação.
|
25
|
+
# Pode ser informada a sigla, identificador (ID) ou um array de siglas/identificadores.
|
26
|
+
#
|
27
|
+
# @param ufs [String, Integer, Array]
|
28
|
+
# @return [Array<Mesorregiao>]
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# mesorregioes = IBGE::Mesorregiao.mesorregioes_por_uf('CE')
|
32
|
+
# mesorregioes.first.nome #=> "Noroeste Cearense"
|
33
|
+
#
|
34
|
+
# IBGE::Mesorregiao.mesorregioes_por_uf(['BA', 'CE'])
|
35
|
+
# IBGE::Mesorregiao.mesorregioes_por_uf(23)
|
36
|
+
def self.mesorregioes_por_uf(ufs)
|
37
|
+
ufs = IBGE.formatar(ufs)
|
38
|
+
resposta = RestClient.get("#{BASE_URL}/estados/#{ufs}/mesorregioes")
|
39
|
+
|
40
|
+
tratar_retorno(resposta)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Obtém o conjunto de mesorregiões do Brasil a partir dos respectivos identificadores.
|
44
|
+
# Pode ser informado um único ID ou um array de IDs.
|
45
|
+
#
|
46
|
+
# @param ids [String, Integer, Array]
|
47
|
+
# @return [Mesorregiao, Array<Mesorregiao>]
|
48
|
+
#
|
49
|
+
# @example
|
50
|
+
# mesorregiao = IBGE::Mesorregiao.mesorregioes_por_id(2303)
|
51
|
+
# mesorregiao.nome #=> "Metropolitana de Fortaleza"
|
52
|
+
#
|
53
|
+
# mesorregioes = IBGE::Mesorregiao.mesorregioes_por_id([2303, 2304])
|
54
|
+
def self.mesorregioes_por_id(ids)
|
55
|
+
ids = IBGE.formatar(ids)
|
56
|
+
resposta = RestClient.get("#{BASE_URL}/mesorregioes/#{ids}")
|
57
|
+
|
58
|
+
tratar_retorno(resposta)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Obtém o conjunto de mesorregiões do Brasil a partir dos identificadores das regiões.
|
62
|
+
# Pode ser informada a sigla, identificador (ID) ou um array de siglas/identificadores.
|
63
|
+
#
|
64
|
+
# @param regioes [String, Integer, Array]
|
65
|
+
# @return [Array<Mesorregiao>]
|
66
|
+
#
|
67
|
+
# @example
|
68
|
+
# mesorregioes = IBGE::Mesorregiao.mesorregioes_por_regiao('NE')
|
69
|
+
# mesorregioes.first.nome #=> "Norte Maranhense"
|
70
|
+
#
|
71
|
+
# IBGE::Mesorregiao.mesorregioes_por_regiao(['NE', 'N'])
|
72
|
+
# IBGE::Mesorregiao.mesorregioes_por_regiao([1, 2])
|
73
|
+
def self.mesorregioes_por_regiao(regioes)
|
74
|
+
regioes = IBGE.formatar(regioes)
|
75
|
+
resposta = RestClient.get("#{BASE_URL}/regioes/#{regioes}/mesorregioes")
|
76
|
+
|
77
|
+
tratar_retorno(resposta)
|
78
|
+
end
|
79
|
+
|
80
|
+
private
|
81
|
+
|
82
|
+
def self.tratar_retorno(resposta)
|
83
|
+
mesorregioes = JSON.parse(resposta.body)
|
84
|
+
|
85
|
+
if mesorregioes.is_a?(Array)
|
86
|
+
mesorregioes.map { |mesorregiao| Mesorregiao.new(mesorregiao) }
|
87
|
+
else
|
88
|
+
Mesorregiao.new(mesorregioes)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
module IBGE
|
2
|
+
class Microrregiao
|
3
|
+
attr_accessor :id, :nome, :mesorregiao
|
4
|
+
|
5
|
+
def initialize(options = {})
|
6
|
+
@id = options['id']
|
7
|
+
@nome = options['nome']
|
8
|
+
@mesorregiao = Mesorregiao.new(options['mesorregiao'])
|
9
|
+
end
|
10
|
+
|
11
|
+
# Obtém o conjunto de microrregiões do Brasil.
|
12
|
+
#
|
13
|
+
# @return [Array<Microrregiao>]
|
14
|
+
#
|
15
|
+
# @example
|
16
|
+
# microrregioes = IBGE::Microrregiao.obter_microrregioes
|
17
|
+
# microrregioes.first.nome #=> "Porto Velho"
|
18
|
+
def self.obter_microrregioes
|
19
|
+
resposta = RestClient.get("#{BASE_URL}/microrregioes")
|
20
|
+
|
21
|
+
tratar_retorno(resposta)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Obtém o conjunto de microrregiões do Brasil a partir dos respectivos identificadores.
|
25
|
+
# Pode ser informado um único ID ou um array de IDs.
|
26
|
+
#
|
27
|
+
# @param ids [String, Integer, Array] Um ou mais identificadores de microrregiões.
|
28
|
+
# @return [Microrregiao, Array<Microrregiao>]
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# microrregiao = IBGE::Microrregiao.microrregioes_por_id(23015)
|
32
|
+
# microrregiao.nome #=> "Cascavel"
|
33
|
+
#
|
34
|
+
# microrregioes = IBGE::Microrregiao.microrregioes_por_id([23015, 23016])
|
35
|
+
def self.microrregioes_por_id(ids)
|
36
|
+
ids = IBGE.formatar(ids)
|
37
|
+
resposta = RestClient.get("#{BASE_URL}/microrregioes/#{ids}")
|
38
|
+
|
39
|
+
tratar_retorno(resposta)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Obtém o conjunto de microrregiões do Brasil a partir dos identificadores das Unidades da Federação.
|
43
|
+
# Pode ser informada a sigla, identificador (ID) ou um array de siglas/identificadores.
|
44
|
+
#
|
45
|
+
# @param ufs [String, Integer, Array]
|
46
|
+
# @return [Array<Microrregiao>]
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
# microrregioes = IBGE::Microrregiao.microrregioes_por_uf('CE')
|
50
|
+
# microrregioes.first.nome #=> "Litoral de Camocim e Acaraú"
|
51
|
+
#
|
52
|
+
# IBGE::Microrregiao.microrregioes_por_uf(['BA', 'CE'])
|
53
|
+
# IBGE::Microrregiao.microrregioes_por_uf(23)
|
54
|
+
def self.microrregioes_por_uf(ufs)
|
55
|
+
ufs = IBGE.formatar(ufs)
|
56
|
+
resposta = RestClient.get("#{BASE_URL}/estados/#{ufs}/microrregioes")
|
57
|
+
|
58
|
+
tratar_retorno(resposta)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Obtém o conjunto de microrregiões do Brasil a partir dos identificadores das regiões.
|
62
|
+
# Pode ser informada a sigla, identificador (ID) ou um array de siglas/identificadores.
|
63
|
+
#
|
64
|
+
# @param regioes [String, Integer, Array]
|
65
|
+
# @return [Array<Microrregiao>]
|
66
|
+
#
|
67
|
+
# @example
|
68
|
+
# microrregioes = IBGE::Microrregiao.microrregioes_por_regiao('NE')
|
69
|
+
# microrregioes.first.nome #=> "Litoral Ocidental Maranhense"
|
70
|
+
#
|
71
|
+
# IBGE::Microrregiao.microrregioes_por_regiao(['NE', 'N'])
|
72
|
+
# IBGE::Microrregiao.microrregioes_por_regiao([1, 2])
|
73
|
+
def self.microrregioes_por_regiao(regioes)
|
74
|
+
regioes = IBGE.formatar(regioes)
|
75
|
+
resposta = RestClient.get("#{BASE_URL}/regioes/#{regioes}/microrregioes")
|
76
|
+
|
77
|
+
tratar_retorno(resposta)
|
78
|
+
end
|
79
|
+
|
80
|
+
# Obtém o conjunto de microrregiões do Brasil a partir dos identificadores das mesorregiões.
|
81
|
+
# Pode ser informado um único ID ou um array de IDs.
|
82
|
+
#
|
83
|
+
# @param ids [String, Integer, Array] Um ou mais identificadores de mesorregiões.
|
84
|
+
# @return [Microrregiao, Array<Microrregiao>]
|
85
|
+
#
|
86
|
+
# @example
|
87
|
+
# microrregioes = IBGE::Microrregiao.microrregioes_por_mesorregiao(2303)
|
88
|
+
# microrregioes.first.nome #=> "Fortaleza"
|
89
|
+
#
|
90
|
+
# microrregioes = IBGE::Microrregiao.microrregioes_por_mesorregiao([2303, 2304])
|
91
|
+
def self.microrregioes_por_mesorregiao(mesorregioes)
|
92
|
+
mesorregioes = IBGE.formatar(mesorregioes)
|
93
|
+
resposta = RestClient.get("#{BASE_URL}/mesorregioes/#{mesorregioes}/microrregioes")
|
94
|
+
|
95
|
+
tratar_retorno(resposta)
|
96
|
+
end
|
97
|
+
|
98
|
+
private
|
99
|
+
|
100
|
+
def self.tratar_retorno(resposta)
|
101
|
+
microrregioes = JSON.parse(resposta.body)
|
102
|
+
|
103
|
+
if microrregioes.is_a?(Array)
|
104
|
+
microrregioes.map { |microrregiao| Microrregiao.new(microrregiao) }
|
105
|
+
else
|
106
|
+
Microrregiao.new(microrregioes)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|