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
@@ -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
|