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
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
module IBGE
|
|
2
|
+
class Municipio
|
|
3
|
+
attr_accessor :id, :nome, :microrregiao
|
|
4
|
+
|
|
5
|
+
def initialize(options = {})
|
|
6
|
+
@id = options['id']
|
|
7
|
+
@nome = options['nome']
|
|
8
|
+
@microrregiao = Microrregiao.new(options['microrregiao'])
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Obtém o conjunto de municípios do Brasil.
|
|
12
|
+
|
|
13
|
+
# @return [Array<Municipio>]
|
|
14
|
+
#
|
|
15
|
+
# @example
|
|
16
|
+
# municipios = IBGE::Municipio.obter_municipios
|
|
17
|
+
# municipios.first.nome #=> "Alta Floresta D'Oeste"
|
|
18
|
+
def self.obter_municipios
|
|
19
|
+
resposta = RestClient.get("#{BASE_URL}/municipios")
|
|
20
|
+
|
|
21
|
+
tratar_retorno(resposta)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Obtém o conjunto de municípios 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 municípios.
|
|
28
|
+
# @return [Municipio, Array<Municipio>]
|
|
29
|
+
#
|
|
30
|
+
# @example
|
|
31
|
+
# municipio = IBGE::Municipio.municipios_por_id(2307254)
|
|
32
|
+
# municipio.nome #=> "Jijoca de Jericoacoara"
|
|
33
|
+
#
|
|
34
|
+
# municipios = IBGE::Municipio.municipios_por_id([2307254, 2302206])
|
|
35
|
+
def self.municipios_por_id(ids)
|
|
36
|
+
ids = IBGE.formatar(ids)
|
|
37
|
+
resposta = RestClient.get("#{BASE_URL}/municipios/#{ids}")
|
|
38
|
+
|
|
39
|
+
tratar_retorno(resposta)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Obtém o conjunto de municípios 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<Municipio>]
|
|
47
|
+
#
|
|
48
|
+
# @example
|
|
49
|
+
# municipios = IBGE::Municipio.municipios_por_uf('CE')
|
|
50
|
+
# municipios.first.nome #=> "Abaiara"
|
|
51
|
+
#
|
|
52
|
+
# IBGE::Municipio.municipios_por_uf(['BA', 'CE'])
|
|
53
|
+
# IBGE::Municipio.municipios_por_uf(23)
|
|
54
|
+
def self.municipios_por_uf(ufs)
|
|
55
|
+
ufs = IBGE.formatar(ufs)
|
|
56
|
+
resposta = RestClient.get("#{BASE_URL}/estados/#{ufs}/municipios")
|
|
57
|
+
|
|
58
|
+
tratar_retorno(resposta)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Obtém o conjunto de municípios 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<Municipio>]
|
|
66
|
+
#
|
|
67
|
+
# @example
|
|
68
|
+
# municipios = IBGE::Municipio.municipios_por_regiao('NE')
|
|
69
|
+
# municipios.first.nome #=> "Açailândia"
|
|
70
|
+
#
|
|
71
|
+
# IBGE::Municipio.municipios_por_regiao(['NE', 'N'])
|
|
72
|
+
# IBGE::Municipio.municipios_por_regiao([1, 2])
|
|
73
|
+
def self.municipios_por_regiao(regioes)
|
|
74
|
+
regioes = IBGE.formatar(regioes)
|
|
75
|
+
resposta = RestClient.get("#{BASE_URL}/regioes/#{regioes}/municipios")
|
|
76
|
+
|
|
77
|
+
tratar_retorno(resposta)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Obtém o conjunto de municípios do Brasil a partir dos identificadores das regiões imediatas.
|
|
81
|
+
# Pode ser informado um único ID ou um array de IDs.
|
|
82
|
+
#
|
|
83
|
+
# @param regioes [String, Integer, Array] Um ou mais identificadores de regiões imediatas.
|
|
84
|
+
# @return [Array<Municipio>]
|
|
85
|
+
#
|
|
86
|
+
# @example
|
|
87
|
+
# municipios = IBGE::Municipio.municipios_por_regiao_imediata(230001)
|
|
88
|
+
# municipios.first.nome #=> "Aquiraz"
|
|
89
|
+
#
|
|
90
|
+
# municipios = IBGE::Municipio.municipios_por_regiao_imediata([230001, 230002])
|
|
91
|
+
def self.municipios_por_regiao_imediata(regioes)
|
|
92
|
+
regioes = IBGE.formatar(regioes)
|
|
93
|
+
resposta = RestClient.get("#{BASE_URL}/regioes-imediatas/#{regioes}/municipios")
|
|
94
|
+
|
|
95
|
+
tratar_retorno(resposta)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Obtém o conjunto de municípios do Brasil a partir dos identificadores das regiões intermediárias.
|
|
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 intermediárias.
|
|
102
|
+
# @return [Array<Municipio>]
|
|
103
|
+
#
|
|
104
|
+
# @example
|
|
105
|
+
# municipios = IBGE::Municipio.municipios_por_regiao_intermediaria(2301)
|
|
106
|
+
# municipios.first.nome #=> "Acarape"
|
|
107
|
+
#
|
|
108
|
+
# municipios = IBGE::Municipio.municipios_por_regiao_intermediaria([2301, 2302])
|
|
109
|
+
def self.municipios_por_regiao_intermediaria(regioes)
|
|
110
|
+
regioes = IBGE.formatar(regioes)
|
|
111
|
+
resposta = RestClient.get("#{BASE_URL}/regioes-intermediarias/#{regioes}/municipios")
|
|
112
|
+
|
|
113
|
+
tratar_retorno(resposta)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Obtém o conjunto de municípios do Brasil a partir dos identificadores das microrregiões.
|
|
117
|
+
# Pode ser informado um único ID ou um array de IDs.
|
|
118
|
+
#
|
|
119
|
+
# @param microrregioes [String, Integer, Array] Um ou mais identificadores de microrregiões.
|
|
120
|
+
# @return [Array<Municipio>]
|
|
121
|
+
#
|
|
122
|
+
# @example
|
|
123
|
+
# municipios = IBGE::Municipio.municipios_por_microrregiao(23016)
|
|
124
|
+
# municipios.last.nome #=> "Pacatuba"
|
|
125
|
+
#
|
|
126
|
+
# municipios = IBGE::Municipio.municipios_por_microrregiao([23016, 23017])
|
|
127
|
+
def self.municipios_por_microrregiao(microrregioes)
|
|
128
|
+
microrregioes = IBGE.formatar(microrregioes)
|
|
129
|
+
resposta = RestClient.get("#{BASE_URL}/microrregioes/#{microrregioes}/municipios")
|
|
130
|
+
|
|
131
|
+
tratar_retorno(resposta)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# Obtém o conjunto de municípios 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<Municipio>]
|
|
139
|
+
#
|
|
140
|
+
# @example
|
|
141
|
+
# municipios = IBGE::Municipio.municipios_por_mesorregiao(2303)
|
|
142
|
+
# municipios.first.nome #=> "Aquiraz"
|
|
143
|
+
#
|
|
144
|
+
# municipios = IBGE::Municipio.municipios_por_mesorregiao([2303, 2304])
|
|
145
|
+
def self.municipios_por_mesorregiao(mesorregioes)
|
|
146
|
+
mesorregioes = IBGE.formatar(mesorregioes)
|
|
147
|
+
resposta = RestClient.get("#{BASE_URL}/mesorregioes/#{mesorregioes}/municipios")
|
|
148
|
+
|
|
149
|
+
tratar_retorno(resposta)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
private
|
|
153
|
+
|
|
154
|
+
def self.tratar_retorno(resposta)
|
|
155
|
+
municipios = JSON.parse(resposta.body)
|
|
156
|
+
|
|
157
|
+
if municipios.is_a?(Array)
|
|
158
|
+
municipios.map { |municipio| Municipio.new(municipio) }
|
|
159
|
+
else
|
|
160
|
+
Municipio.new(municipios)
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
data/lib/ibge/pais.rb
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
module IBGE
|
|
2
|
+
class Pais
|
|
3
|
+
attr_accessor :id, :nome, :regiao_intermediaria, :sub_regiao
|
|
4
|
+
|
|
5
|
+
def initialize(options = {})
|
|
6
|
+
@id = options['id']
|
|
7
|
+
@nome = options['nome']
|
|
8
|
+
@regiao_intermediaria = options['regiao-intermediaria']
|
|
9
|
+
@sub_regiao = options['sub-regiao']
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Obtém o conjunto de países.
|
|
13
|
+
#
|
|
14
|
+
# @return [Array<Pais>]
|
|
15
|
+
#
|
|
16
|
+
# @example
|
|
17
|
+
# paises = IBGE::Pais.obter_paises
|
|
18
|
+
# paises.first.nome #=> "Afeganistão"
|
|
19
|
+
# paises.first.class #=> IBGE::Pais
|
|
20
|
+
def self.obter_paises
|
|
21
|
+
resposta = RestClient.get("#{BASE_URL}/paises")
|
|
22
|
+
|
|
23
|
+
tratar_retorno(resposta)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Obtém o conjunto de países a partir dos respectivos identificadores.
|
|
27
|
+
# Pode ser informado o identificador (ID) ou um array de identificadores.
|
|
28
|
+
#
|
|
29
|
+
# @param paises [Integer, String, Array]
|
|
30
|
+
# @return [Array<Pais>]
|
|
31
|
+
#
|
|
32
|
+
# @example
|
|
33
|
+
# pais = IBGE::Pais.paises_por_identificador(76)
|
|
34
|
+
# pais.nome #=> "Brasil"
|
|
35
|
+
#
|
|
36
|
+
# paises = IBGE::Pais.paises_por_identificador([32, 76])
|
|
37
|
+
# paises.map(&:nome) #=> ["Argentina", "Brasil"]
|
|
38
|
+
def self.paises_por_identificador(paises)
|
|
39
|
+
paises = IBGE.formatar(paises)
|
|
40
|
+
resposta = RestClient.get("#{BASE_URL}/paises/#{paises}")
|
|
41
|
+
|
|
42
|
+
tratar_retorno(resposta)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
private
|
|
46
|
+
|
|
47
|
+
def self.tratar_retorno(resposta)
|
|
48
|
+
paises = JSON.parse(resposta.body)
|
|
49
|
+
|
|
50
|
+
paises.map { |pais| Pais.new(pais) }
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
data/lib/ibge/regiao.rb
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
module IBGE
|
|
2
|
+
class Regiao
|
|
3
|
+
attr_accessor :id, :nome, :sigla
|
|
4
|
+
|
|
5
|
+
def initialize(options = {})
|
|
6
|
+
@id = options['id']
|
|
7
|
+
@nome = options['nome']
|
|
8
|
+
@sigla = options['sigla']
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Obtém o conjunto de regiões do Brasil.
|
|
12
|
+
#
|
|
13
|
+
# @return [<Array[Regiao]>]
|
|
14
|
+
#
|
|
15
|
+
# @example
|
|
16
|
+
# regioes = IBGE::Regiao.obter_regioes
|
|
17
|
+
# regioes.map(&:sigla) #=> ["N", "NE", "SE", "S", "CO"]
|
|
18
|
+
def self.obter_regioes
|
|
19
|
+
resposta = RestClient.get("#{BASE_URL}/regioes")
|
|
20
|
+
|
|
21
|
+
tratar_retorno(resposta)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Obtém o conjunto de regiões do Brasil a partir dos respectivos identificadores.
|
|
25
|
+
# Pode ser informada a sigla, identificador (ID) ou um array de siglas/identificadores.
|
|
26
|
+
#
|
|
27
|
+
# @param regioes [String, Integer, Array]
|
|
28
|
+
# @return [Regiao, <Array[Regiao]>]
|
|
29
|
+
#
|
|
30
|
+
# @example
|
|
31
|
+
# regiao = IBGE::Regiao.regioes_por_identificador('NE')
|
|
32
|
+
# regiao.nome #=> "Nordeste"
|
|
33
|
+
#
|
|
34
|
+
# regioes = IBGE::Regiao.regioes_por_identificador([1, 2])
|
|
35
|
+
# regioes.map(&:sigla) #=> ["N", "NE"]
|
|
36
|
+
def self.regioes_por_identificador(regioes)
|
|
37
|
+
regioes = IBGE.formatar(regioes)
|
|
38
|
+
resposta = RestClient.get("#{BASE_URL}/regioes/#{regioes}")
|
|
39
|
+
|
|
40
|
+
tratar_retorno(resposta)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
private
|
|
44
|
+
|
|
45
|
+
def self.tratar_retorno(resposta)
|
|
46
|
+
regioes = JSON.parse(resposta.body)
|
|
47
|
+
|
|
48
|
+
if regioes.is_a?(Array)
|
|
49
|
+
regioes.map { |regiao| Regiao.new(regiao) }
|
|
50
|
+
else
|
|
51
|
+
Regiao.new(regioes)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
module IBGE
|
|
2
|
+
class RegiaoImediata
|
|
3
|
+
attr_accessor :id, :nome, :regiao_intermediaria
|
|
4
|
+
|
|
5
|
+
def initialize(options = {})
|
|
6
|
+
@id = options['id']
|
|
7
|
+
@nome = options['nome']
|
|
8
|
+
@regiao_intermediaria = RegiaoIntermediaria.new(options['regiao-intermediaria'])
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Obtém o conjunto de regiões imediatas do Brasil.
|
|
12
|
+
#
|
|
13
|
+
# @return [Array<RegiaoImediata>]
|
|
14
|
+
#
|
|
15
|
+
# @example
|
|
16
|
+
# regioes = IBGE::RegiaoImediata.obter_regioes_imediatas
|
|
17
|
+
# regioes.first.nome #=> "Porto Velho"
|
|
18
|
+
def self.obter_regioes_imediatas
|
|
19
|
+
resposta = RestClient.get("#{BASE_URL}/regioes-imediatas")
|
|
20
|
+
|
|
21
|
+
tratar_retorno(resposta)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Obtém o conjunto de regiões imediatas 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 regiões imediatas.
|
|
28
|
+
# @return [RegiaoImediata, Array<RegiaoImediata>]
|
|
29
|
+
#
|
|
30
|
+
# @example
|
|
31
|
+
# regiao = IBGE::RegiaoImediata.regioes_imediatas_por_id(230001)
|
|
32
|
+
# regiao.nome #=> "Fortaleza"
|
|
33
|
+
#
|
|
34
|
+
# regioes = IBGE::RegiaoImediata.regioes_imediatas_por_id([230001, 230002])
|
|
35
|
+
def self.regioes_imediatas_por_id(ids)
|
|
36
|
+
ids = IBGE.formatar(ids)
|
|
37
|
+
resposta = RestClient.get("#{BASE_URL}/regioes-imediatas/#{ids}")
|
|
38
|
+
|
|
39
|
+
tratar_retorno(resposta)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Obtém o conjunto de regiões imediatas 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<RegiaoImediata>]
|
|
47
|
+
#
|
|
48
|
+
# @example
|
|
49
|
+
# regioes = IBGE::RegiaoImediata.regioes_imediatas_por_uf('CE')
|
|
50
|
+
# regioes.first.nome #=> "Fortaleza"
|
|
51
|
+
#
|
|
52
|
+
# IBGE::RegiaoImediata.regioes_imediatas_por_uf(['BA', 'CE'])
|
|
53
|
+
# IBGE::RegiaoImediata.regioes_imediatas_por_uf(23)
|
|
54
|
+
def self.regioes_imediatas_por_uf(ufs)
|
|
55
|
+
ufs = IBGE.formatar(ufs)
|
|
56
|
+
resposta = RestClient.get("#{BASE_URL}/estados/#{ufs}/regioes-imediatas")
|
|
57
|
+
|
|
58
|
+
tratar_retorno(resposta)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Obtém o conjunto de regiões imediatas 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] Um ou mais identificadores de regiões.
|
|
65
|
+
# @return [Array<RegiaoImediata>]
|
|
66
|
+
#
|
|
67
|
+
# @example
|
|
68
|
+
# regioes = IBGE::RegiaoImediata.regioes_imediatas_por_regiao('NE')
|
|
69
|
+
# regioes.first.nome #=> "São Luís"
|
|
70
|
+
#
|
|
71
|
+
# IBGE::RegiaoImediata.regioes_imediatas_por_regiao(['NE', 'N'])
|
|
72
|
+
# IBGE::RegiaoImediata.regioes_imediatas_por_regiao([1, 2])
|
|
73
|
+
def self.regioes_imediatas_por_regiao(regioes)
|
|
74
|
+
regioes = IBGE.formatar(regioes)
|
|
75
|
+
resposta = RestClient.get("#{BASE_URL}/regioes/#{regioes}/regioes-imediatas")
|
|
76
|
+
|
|
77
|
+
tratar_retorno(resposta)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Obtém o conjunto de regiões imediatas do Brasil a partir dos identificadores das regiões intermediárias.
|
|
81
|
+
# Pode ser informado um único ID ou um array de IDs.
|
|
82
|
+
#
|
|
83
|
+
# @param ids [String, Integer, Array] Um ou mais identificadores de regiões intermediárias.
|
|
84
|
+
# @return [Array<RegiaoImediata>]
|
|
85
|
+
#
|
|
86
|
+
# @example
|
|
87
|
+
# regiao = IBGE::RegiaoImediata.regioes_imediatas_por_intermediaria(2301)
|
|
88
|
+
# regiao.nome #=> "Fortaleza"
|
|
89
|
+
#
|
|
90
|
+
# regioes = IBGE::RegiaoImediata.regioes_imediatas_por_intermediaria([2301, 2302])
|
|
91
|
+
def self.regioes_imediatas_por_intermediaria(regioes)
|
|
92
|
+
regioes = IBGE.formatar(regioes)
|
|
93
|
+
resposta = RestClient.get("#{BASE_URL}/regioes-intermediarias/#{regioes}/regioes-imediatas")
|
|
94
|
+
|
|
95
|
+
tratar_retorno(resposta)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
private
|
|
99
|
+
|
|
100
|
+
def self.tratar_retorno(resposta)
|
|
101
|
+
regioes = JSON.parse(resposta.body)
|
|
102
|
+
|
|
103
|
+
if regioes.is_a?(Array)
|
|
104
|
+
regioes.map { |regiao| RegiaoImediata.new(regiao) }
|
|
105
|
+
else
|
|
106
|
+
RegiaoImediata.new(regioes)
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
module IBGE
|
|
2
|
+
class RegiaoIntermediaria
|
|
3
|
+
attr_accessor :id, :nome, :uf
|
|
4
|
+
|
|
5
|
+
def initialize(options = {})
|
|
6
|
+
@id = options['id']
|
|
7
|
+
@nome = options['nome']
|
|
8
|
+
@uf = UF.new(options['UF'])
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Obtém o conjunto de regiões intermediárias do Brasil.
|
|
12
|
+
#
|
|
13
|
+
# @return [Array<RegiaoIntermediaria>]
|
|
14
|
+
#
|
|
15
|
+
# @example
|
|
16
|
+
# regioes = IBGE::RegiaoIntermediaria.obter_regioes_intermediarias
|
|
17
|
+
# regioes.first.nome #=> "Porto Velho"
|
|
18
|
+
def self.obter_regioes_intermediarias
|
|
19
|
+
resposta = RestClient.get("#{BASE_URL}/regioes-intermediarias")
|
|
20
|
+
|
|
21
|
+
tratar_retorno(resposta)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Obtém o conjunto de regiões intermediárias 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 regiões intermediárias.
|
|
28
|
+
# @return [RegiaoIntermediaria, Array<RegiaoIntermediaria>]
|
|
29
|
+
#
|
|
30
|
+
# @example
|
|
31
|
+
# regiao = IBGE::RegiaoIntermediaria.regioes_intermediarias_por_id(2301)
|
|
32
|
+
# regiao.nome #=> "Fortaleza"
|
|
33
|
+
#
|
|
34
|
+
# regioes = IBGE::RegiaoIntermediaria.regioes_intermediarias_por_id([2301, 2302])
|
|
35
|
+
def self.regioes_intermediarias_por_id(ids)
|
|
36
|
+
ids = IBGE.formatar(ids)
|
|
37
|
+
resposta = RestClient.get("#{BASE_URL}/regioes-intermediarias/#{ids}")
|
|
38
|
+
|
|
39
|
+
tratar_retorno(resposta)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Obtém o conjunto de regiões intermediárias 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<RegiaoIntermediaria>]
|
|
47
|
+
#
|
|
48
|
+
# @example
|
|
49
|
+
# regioes = IBGE::RegiaoIntermediaria.regioes_intermediarias_por_uf('CE')
|
|
50
|
+
# regioes.first.nome #=> "Fortaleza"
|
|
51
|
+
#
|
|
52
|
+
# IBGE::RegiaoIntermediaria.regioes_intermediarias_por_uf(['BA', 'CE'])
|
|
53
|
+
# IBGE::RegiaoIntermediaria.regioes_intermediarias_por_uf(23)
|
|
54
|
+
def self.regioes_intermediarias_por_uf(ufs)
|
|
55
|
+
ufs = IBGE.formatar(ufs)
|
|
56
|
+
resposta = RestClient.get("#{BASE_URL}/estados/#{ufs}/regioes-intermediarias")
|
|
57
|
+
|
|
58
|
+
tratar_retorno(resposta)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Obtém o conjunto de regiões intermediárias 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] Um ou mais identificadores de regiões.
|
|
65
|
+
# @return [Array<RegiaoIntermediaria>]
|
|
66
|
+
#
|
|
67
|
+
# @example
|
|
68
|
+
# regioes = IBGE::RegiaoIntermediaria.regioes_intermediarias_por_regiao('NE')
|
|
69
|
+
# regioes.first.nome #=> "São Luís"
|
|
70
|
+
#
|
|
71
|
+
# IBGE::RegiaoIntermediaria.regioes_intermediarias_por_regiao(['NE', 'N'])
|
|
72
|
+
# IBGE::RegiaoIntermediaria.regioes_intermediarias_por_regiao([1, 2])
|
|
73
|
+
def self.regioes_intermediarias_por_regiao(regioes)
|
|
74
|
+
regioes = IBGE.formatar(regioes)
|
|
75
|
+
resposta = RestClient.get("#{BASE_URL}/regioes/#{regioes}/regioes-intermediarias")
|
|
76
|
+
|
|
77
|
+
tratar_retorno(resposta)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
private
|
|
81
|
+
|
|
82
|
+
def self.tratar_retorno(resposta)
|
|
83
|
+
regioes = JSON.parse(resposta.body)
|
|
84
|
+
|
|
85
|
+
if regioes.is_a?(Array)
|
|
86
|
+
regioes.map { |regiao| RegiaoIntermediaria.new(regiao) }
|
|
87
|
+
else
|
|
88
|
+
RegiaoIntermediaria.new(regioes)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
module IBGE
|
|
2
|
+
class Subdistrito
|
|
3
|
+
attr_accessor :id, :nome, :distrito
|
|
4
|
+
|
|
5
|
+
def initialize(options = {})
|
|
6
|
+
@id = options['id']
|
|
7
|
+
@nome = options['nome']
|
|
8
|
+
@distrito = Distrito.new(options['distrito'])
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Obtém o conjunto de subdistritos do Brasil.
|
|
12
|
+
#
|
|
13
|
+
# @return [Array<Subdistrito>]
|
|
14
|
+
#
|
|
15
|
+
# @example
|
|
16
|
+
# subdistritos = IBGE::Subdistrito.obter_subdistritos
|
|
17
|
+
# subdistritos.first.nome #=> "Zona Central"
|
|
18
|
+
def self.obter_subdistritos
|
|
19
|
+
resposta = RestClient.get("#{BASE_URL}/subdistritos")
|
|
20
|
+
|
|
21
|
+
tratar_retorno(resposta)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Obtém o conjunto de subdistritos 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 subdistritos.
|
|
28
|
+
# @return [Array<Subdistrito>]
|
|
29
|
+
#
|
|
30
|
+
# @example
|
|
31
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_id('23044000512')
|
|
32
|
+
# subdistritos.first.nome #=> "Mucuripe"
|
|
33
|
+
#
|
|
34
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_id(['23044000512', '23044006511'])
|
|
35
|
+
def self.subdistritos_por_id(ids)
|
|
36
|
+
ids = IBGE.formatar(ids)
|
|
37
|
+
resposta = RestClient.get("#{BASE_URL}/subdistritos/#{ids}")
|
|
38
|
+
|
|
39
|
+
tratar_retorno(resposta)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Obtém o conjunto de subdistritos 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<Subdistrito>]
|
|
47
|
+
#
|
|
48
|
+
# @example
|
|
49
|
+
# distritos = IBGE::Subdistrito.subdistritos_por_uf('CE')
|
|
50
|
+
# distritos.first.nome #=> "Antônio Bezerra"
|
|
51
|
+
#
|
|
52
|
+
# IBGE::Subdistrito.subdistritos_por_uf(['BA', 'CE'])
|
|
53
|
+
# IBGE::Subdistrito.subdistritos_por_uf(23)
|
|
54
|
+
def self.subdistritos_por_uf(ufs)
|
|
55
|
+
ufs = IBGE.formatar(ufs)
|
|
56
|
+
resposta = RestClient.get("#{BASE_URL}/estados/#{ufs}/subdistritos")
|
|
57
|
+
|
|
58
|
+
tratar_retorno(resposta)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Obtém o conjunto de subdistritos 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<Subdistrito>]
|
|
66
|
+
#
|
|
67
|
+
# @example
|
|
68
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_regiao('NE')
|
|
69
|
+
# subdistritos.first.nome #=> "RPA I"
|
|
70
|
+
#
|
|
71
|
+
# IBGE::Subdistrito.subdistritos_por_regiao(['NE', 'N'])
|
|
72
|
+
# IBGE::Subdistrito.subdistritos_por_regiao([1, 2])
|
|
73
|
+
def self.subdistritos_por_regiao(regioes)
|
|
74
|
+
regioes = IBGE.formatar(regioes)
|
|
75
|
+
resposta = RestClient.get("#{BASE_URL}/regioes/#{regioes}/subdistritos")
|
|
76
|
+
|
|
77
|
+
tratar_retorno(resposta)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Obtém o conjunto de subdistritos do Brasil a partir dos identificadores das microrregiões.
|
|
81
|
+
# Pode ser informado um único ID ou um array de IDs.
|
|
82
|
+
#
|
|
83
|
+
# @param microrregioes [String, Integer, Array] Um ou mais identificadores de microrregiões.
|
|
84
|
+
# @return [Array<Subdistrito>]
|
|
85
|
+
#
|
|
86
|
+
# @example
|
|
87
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_microrregiao(23016)
|
|
88
|
+
# subdistritos.last.nome #=> "Parangaba"
|
|
89
|
+
#
|
|
90
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_microrregiao([23016, 23017])
|
|
91
|
+
def self.subdistritos_por_microrregiao(microrregioes)
|
|
92
|
+
microrregioes = IBGE.formatar(microrregioes)
|
|
93
|
+
resposta = RestClient.get("#{BASE_URL}/microrregioes/#{microrregioes}/subdistritos")
|
|
94
|
+
|
|
95
|
+
tratar_retorno(resposta)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Obtém o conjunto de subdistritos do Brasil a partir dos identificadores das mesorregiões.
|
|
99
|
+
# Pode ser informado um único ID ou um array de IDs.
|
|
100
|
+
#
|
|
101
|
+
# @param mesorregioes [String, Integer, Array] Um ou mais identificadores de mesorregiões.
|
|
102
|
+
# @return [Array<Subdistrito>]
|
|
103
|
+
#
|
|
104
|
+
# @example
|
|
105
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_mesorregiao(2303)
|
|
106
|
+
# subdistritos.first.nome #=> "Antônio Bezerra"
|
|
107
|
+
#
|
|
108
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_mesorregiao([2303, 2304])
|
|
109
|
+
def self.subdistritos_por_mesorregiao(mesorregioes)
|
|
110
|
+
mesorregioes = IBGE.formatar(mesorregioes)
|
|
111
|
+
resposta = RestClient.get("#{BASE_URL}/mesorregioes/#{mesorregioes}/subdistritos")
|
|
112
|
+
|
|
113
|
+
tratar_retorno(resposta)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Obtém o conjunto de subdistritos do Brasil a partir dos identificadores dos distritos.
|
|
117
|
+
# Pode ser informado um único ID ou um array de IDs.
|
|
118
|
+
#
|
|
119
|
+
# @param distritos [String, Integer, Array] um ou mais identificadores de distritos.
|
|
120
|
+
# @return [Array<Subdistrito>]
|
|
121
|
+
#
|
|
122
|
+
# @example
|
|
123
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_distrito('230440005')
|
|
124
|
+
# subdistritos.last.nome #=> "Mucuripe"
|
|
125
|
+
#
|
|
126
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_distrito(['230440005', '230370905'])
|
|
127
|
+
def self.subdistritos_por_distrito(distritos)
|
|
128
|
+
distritos = IBGE.formatar(distritos)
|
|
129
|
+
resposta = RestClient.get("#{BASE_URL}/distritos/#{distritos}/subdistritos")
|
|
130
|
+
|
|
131
|
+
tratar_retorno(resposta)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# Obtém o conjunto de subdistritos do Brasil a partir dos identificadores dos municípios.
|
|
135
|
+
# Pode ser informado um único ID ou um array de IDs.
|
|
136
|
+
#
|
|
137
|
+
# @param municipios [String, Integer, Array] um ou mais identificadores de municípios.
|
|
138
|
+
# @return [Array<Subdistrito>]
|
|
139
|
+
#
|
|
140
|
+
# @example
|
|
141
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_municipio('2304400')
|
|
142
|
+
# subdistritos.last.nome #=> "Parangaba"
|
|
143
|
+
#
|
|
144
|
+
# subdistritos = IBGE::Subdistrito.subdistritos_por_municipio(['2304400', '2927408'])
|
|
145
|
+
def self.subdistritos_por_municipio(municipios)
|
|
146
|
+
municipios = IBGE.formatar(municipios)
|
|
147
|
+
resposta = RestClient.get("#{BASE_URL}/municipios/#{municipios}/subdistritos")
|
|
148
|
+
|
|
149
|
+
tratar_retorno(resposta)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
private
|
|
153
|
+
|
|
154
|
+
def self.tratar_retorno(resposta)
|
|
155
|
+
subdistritos = JSON.parse(resposta.body)
|
|
156
|
+
|
|
157
|
+
subdistritos.map { |subdistrito| Subdistrito.new(subdistrito) }
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
end
|