ibge-ruby 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
[](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
|