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
data/lib/ibge/uf.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
module IBGE
|
2
|
+
class UF
|
3
|
+
attr_accessor :id, :nome, :sigla, :regiao
|
4
|
+
|
5
|
+
def initialize(options = {})
|
6
|
+
@id = options['id']
|
7
|
+
@nome = options['nome']
|
8
|
+
@sigla = options['sigla']
|
9
|
+
@regiao = Regiao.new(options['regiao'])
|
10
|
+
end
|
11
|
+
|
12
|
+
# Obtém o conjunto de Unidades da Federação do Brasil.
|
13
|
+
#
|
14
|
+
# @example
|
15
|
+
# ufs = IBGE::UF.obter_ufs
|
16
|
+
# ufs.first.class #=> IBGE::UF
|
17
|
+
# ufs.first.nome #=> "Acre"
|
18
|
+
# ufs.map(&:sigla) #=> ['AC', 'AM', 'AP'...]
|
19
|
+
def self.obter_ufs
|
20
|
+
resposta = RestClient.get("#{BASE_URL}/estados")
|
21
|
+
|
22
|
+
tratar_retorno(resposta)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Obtém o conjunto de Unidades da Federação do Brasil a partir dos respectivos identificadores.
|
26
|
+
# Pode ser informada a sigla, identificador (ID) ou um array de siglas/identificadores.
|
27
|
+
#
|
28
|
+
# @param ufs [String, Integer, Array]
|
29
|
+
# @return [UF, Array<UF>]
|
30
|
+
#
|
31
|
+
# @example
|
32
|
+
# uf = IBGE::UF.uf_por_identificador('CE')
|
33
|
+
#
|
34
|
+
# ufs = IBGE::UF.ufs_por_identificador(['BA', 'CE'])
|
35
|
+
def self.ufs_por_identificador(ufs)
|
36
|
+
ufs = IBGE.formatar(ufs)
|
37
|
+
resposta = RestClient.get("#{BASE_URL}/estados/#{ufs}")
|
38
|
+
|
39
|
+
tratar_retorno(resposta)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Obtém o conjunto de Unidades da Federação do Brasil a partir dos identificadores das regiões.
|
43
|
+
# Pode ser informada a sigla, o identificador (ID) ou um array de siglas/identificadores.
|
44
|
+
#
|
45
|
+
# @param regioes [String, Integer, Array]
|
46
|
+
# @return [Array<UF>]
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
# ufs = IBGE::UF.ufs_por_regiao('NE')
|
50
|
+
# ufs.first.nome #=> "Maranhão"
|
51
|
+
#
|
52
|
+
# ufs = IBGE::UF.ufs_por_regiao(['NE', 'N'])
|
53
|
+
# ufs.map(&:nome) #=> ['Ceará', 'Amazonas'...]
|
54
|
+
def self.ufs_por_regiao(regioes)
|
55
|
+
regioes = IBGE.formatar(regioes)
|
56
|
+
resposta = RestClient.get("#{BASE_URL}/regioes/#{regioes}/estados")
|
57
|
+
|
58
|
+
tratar_retorno(resposta)
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def self.tratar_retorno(resposta)
|
64
|
+
ufs = JSON.parse(resposta.body)
|
65
|
+
|
66
|
+
if ufs.is_a?(Array)
|
67
|
+
ufs.map { |uf| UF.new(uf) }
|
68
|
+
else
|
69
|
+
UF.new(ufs)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
data/lib/ibge/utils.rb
ADDED
data/lib/ibge/version.rb
ADDED
data/lib/ibge.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rest-client'
|
2
|
+
require 'json'
|
3
|
+
require 'ibge/utils'
|
4
|
+
|
5
|
+
module IBGE
|
6
|
+
BASE_URL = 'https://servicodados.ibge.gov.br/api/v1/localidades'
|
7
|
+
|
8
|
+
autoload :Distrito, 'ibge/distrito'
|
9
|
+
autoload :Mesorregiao, 'ibge/mesorregiao'
|
10
|
+
autoload :Microrregiao, 'ibge/microrregiao'
|
11
|
+
autoload :Municipio, 'ibge/municipio'
|
12
|
+
autoload :Subdistrito, 'ibge/subdistrito'
|
13
|
+
autoload :Regiao, 'ibge/regiao'
|
14
|
+
autoload :RegiaoImediata, 'ibge/regiao_imediata'
|
15
|
+
autoload :RegiaoIntermediaria, 'ibge/regiao_intermediaria'
|
16
|
+
autoload :Pais, 'ibge/pais'
|
17
|
+
autoload :UF, 'ibge/uf'
|
18
|
+
end
|
@@ -0,0 +1,250 @@
|
|
1
|
+
describe IBGE::Distrito do
|
2
|
+
shared_examples_for 'objeto' do
|
3
|
+
it 'deve retornar o nome Fortaleza' do
|
4
|
+
expect(subject.first.nome).to eq('Fortaleza')
|
5
|
+
end
|
6
|
+
|
7
|
+
it 'deve retornar o ID 230440005' do
|
8
|
+
expect(subject.first.id).to eq("230440005")
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'deve retornar o município, que é um objeto IBGE::Municipio' do
|
12
|
+
expect(subject.first.municipio).to be_an IBGE::Municipio
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
shared_examples_for 'array' do |tamanho|
|
17
|
+
it 'deve retornar um Array<IBGE::Distrito>' do
|
18
|
+
aggregate_failures do
|
19
|
+
is_expected.to be_an Array
|
20
|
+
expect(subject.first).to be_an IBGE::Distrito
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '.obter_distritos' do
|
26
|
+
subject do
|
27
|
+
VCR.use_cassette('distrito/obter_distritos') do
|
28
|
+
IBGE::Distrito.obter_distritos
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
it_has_behavior 'array'
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '.distritos_por_id' do
|
36
|
+
context 'recebendo um array de IDs (["230440005", "230370905"]) como parâmetro' do
|
37
|
+
subject do
|
38
|
+
VCR.use_cassette('distrito/distritos_por_id:230440005|230370905', erb: { param: '230440005%7C230370905' }) do
|
39
|
+
IBGE::Distrito.distritos_por_id(%w(230440005 230370905))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it_has_behavior 'array'
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'recebendo um ID ("230440005") como parâmetro' do
|
47
|
+
subject do
|
48
|
+
VCR.use_cassette('distrito/distritos_por_id:230440005', erb: { param: '230440005' }) do
|
49
|
+
IBGE::Distrito.distritos_por_id('230440005')
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
it_has_behavior 'objeto'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe '.distritos_por_uf' do
|
58
|
+
context 'recebendo um array de siglas (["BA", "CE"]) como parâmetro' do
|
59
|
+
subject do
|
60
|
+
VCR.use_cassette('distrito/distritos_por_uf:BA|CE', erb: { param: 'BA%7CCE' }) do
|
61
|
+
IBGE::Distrito.distritos_por_uf(%w(BA CE))
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
it_has_behavior 'array'
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'recebendo um array de IDs ([29, 23]) como parâmetro' do
|
69
|
+
subject do
|
70
|
+
VCR.use_cassette('distrito/distritos_por_uf:BA|CE', erb: { param: '29%7C23' }) do
|
71
|
+
IBGE::Distrito.distritos_por_uf([29, 23])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
it_has_behavior 'array'
|
76
|
+
end
|
77
|
+
|
78
|
+
context 'recebendo uma sigla (CE) como parâmetro' do
|
79
|
+
subject do
|
80
|
+
VCR.use_cassette('distrito/distritos_por_uf:CE', erb: { param: 'CE' }) do
|
81
|
+
IBGE::Distrito.distritos_por_uf('CE')
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
it_has_behavior 'array'
|
86
|
+
end
|
87
|
+
|
88
|
+
context 'recebendo um ID (23) como parâmetro' do
|
89
|
+
subject do
|
90
|
+
VCR.use_cassette('distrito/distritos_por_uf:CE', erb: { param: 23 }) do
|
91
|
+
IBGE::Distrito.distritos_por_uf(23)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
it_has_behavior 'array'
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe '.distritos_por_regiao' do
|
100
|
+
context 'recebendo um array de siglas (["N", "NE"]) como parâmetro' do
|
101
|
+
subject do
|
102
|
+
VCR.use_cassette('distrito/distritos_por_regiao:N|NE', erb: { param: 'N%7CNE' }) do
|
103
|
+
IBGE::Distrito.distritos_por_regiao(%w(N NE))
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
it_has_behavior 'array'
|
108
|
+
end
|
109
|
+
|
110
|
+
context 'recebendo um array de IDs ([1, 2]) como parâmetro' do
|
111
|
+
subject do
|
112
|
+
VCR.use_cassette('distrito/distritos_por_regiao:N|NE', erb: { param: '1%7C2' }) do
|
113
|
+
IBGE::Distrito.distritos_por_regiao([1, 2])
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
it_has_behavior 'array'
|
118
|
+
end
|
119
|
+
|
120
|
+
context 'recebendo um ID (2) como parâmetro' do
|
121
|
+
subject do
|
122
|
+
VCR.use_cassette('distrito/distritos_por_regiao:NE', erb: { param: 2 }) do
|
123
|
+
IBGE::Distrito.distritos_por_regiao(2)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
it_has_behavior 'array'
|
128
|
+
end
|
129
|
+
|
130
|
+
context 'recebendo uma sigla (NE) como parâmetro' do
|
131
|
+
subject do
|
132
|
+
VCR.use_cassette('distrito/distritos_por_regiao:NE', erb: { param: 'NE' }) do
|
133
|
+
IBGE::Distrito.distritos_por_regiao('NE')
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
it_has_behavior 'array'
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
describe '.distritos_por_municipio' do
|
142
|
+
context 'recebendo um array de IDs (["2307254", "2302206"]) como parâmetro' do
|
143
|
+
subject do
|
144
|
+
VCR.use_cassette('distrito/distritos_por_municipio:2307254|2302206', erb: { param: '2307254%7C2302206' }) do
|
145
|
+
IBGE::Distrito.distritos_por_municipio(['2307254', '2302206'])
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
it_has_behavior 'array'
|
150
|
+
end
|
151
|
+
|
152
|
+
context 'recebendo um ID ("2307254") como parâmetro' do
|
153
|
+
subject do
|
154
|
+
VCR.use_cassette('distrito/distritos_por_municipio:2307254', erb: { param: '2307254' }) do
|
155
|
+
IBGE::Distrito.distritos_por_municipio('2307254')
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
it_has_behavior 'array'
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
describe '.distritos_por_regiao_imediata' do
|
164
|
+
context 'recebendo um array de IDs ([230001, 230002]) como parâmetro' do
|
165
|
+
subject do
|
166
|
+
VCR.use_cassette('distrito/distritos_por_regiao_imediata:230001|230002', erb: { param: '230001%7C230002' }) do
|
167
|
+
IBGE::Distrito.distritos_por_regiao_imediata([230001, 230002])
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
it_has_behavior 'array'
|
172
|
+
end
|
173
|
+
|
174
|
+
context 'recebendo um ID (230001) como parâmetro' do
|
175
|
+
subject do
|
176
|
+
VCR.use_cassette('distrito/distritos_por_regiao_imediata:230001', erb: { param: '230001' }) do
|
177
|
+
IBGE::Distrito.distritos_por_regiao_imediata(230001)
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
it_has_behavior 'array'
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
describe '.distritos_por_regiao_intermediaria' do
|
186
|
+
context 'recebendo um array de IDs ([2301, 2302]) como parâmetro' do
|
187
|
+
subject do
|
188
|
+
VCR.use_cassette('distrito/distritos_por_regiao_intermediaria:2301|2302', erb: { param: '2301%7C23017' }) do
|
189
|
+
IBGE::Distrito.distritos_por_regiao_intermediaria([2301, 2302])
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
it_has_behavior 'array'
|
194
|
+
end
|
195
|
+
|
196
|
+
context 'recebendo um ID (2301) como parâmetro' do
|
197
|
+
subject do
|
198
|
+
VCR.use_cassette('distrito/distritos_por_regiao_intermediaria:2301', erb: { param: '2301' }) do
|
199
|
+
IBGE::Distrito.distritos_por_regiao_intermediaria(2301)
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
it_has_behavior 'array'
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
describe '.distritos_por_mesorregiao' do
|
208
|
+
context 'recebendo um array de IDs ([2303, 2304]) como parâmetro' do
|
209
|
+
subject do
|
210
|
+
VCR.use_cassette('distrito/distritos_por_mesorregiao:2303|2304', erb: { param: '2303%7C2304' }) do
|
211
|
+
IBGE::Distrito.distritos_por_mesorregiao([2303, 2304])
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
it_has_behavior 'array'
|
216
|
+
end
|
217
|
+
|
218
|
+
context 'recebendo um ID (2303) como parâmetro' do
|
219
|
+
subject do
|
220
|
+
VCR.use_cassette('distrito/distritos_por_mesorregiao:2303', erb: { param: '2303' }) do
|
221
|
+
IBGE::Distrito.distritos_por_mesorregiao(2303)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
it_has_behavior 'array'
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
describe '.distritos_por_microrregiao' do
|
230
|
+
context 'recebendo um array de IDs ([23016, 23017]) como parâmetro' do
|
231
|
+
subject do
|
232
|
+
VCR.use_cassette('distrito/distritos_por_microrregiao:23016|23017', erb: { param: '23016%7C23017' }) do
|
233
|
+
IBGE::Distrito.distritos_por_microrregiao([23016, 23017])
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
it_has_behavior 'array'
|
238
|
+
end
|
239
|
+
|
240
|
+
context 'recebendo um ID (23016) como parâmetro' do
|
241
|
+
subject do
|
242
|
+
VCR.use_cassette('distrito/distritos_por_microrregiao:23016', erb: { param: '23016' }) do
|
243
|
+
IBGE::Distrito.distritos_por_microrregiao(23016)
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
it_has_behavior 'array'
|
248
|
+
end
|
249
|
+
end
|
250
|
+
end
|
@@ -0,0 +1,144 @@
|
|
1
|
+
describe IBGE::Mesorregiao do
|
2
|
+
shared_examples_for 'objeto' do
|
3
|
+
it 'deve retornar um objeto IBGE::Mesorregiao' do
|
4
|
+
is_expected.to be_an IBGE::Mesorregiao
|
5
|
+
end
|
6
|
+
|
7
|
+
it 'deve retornar o nome Metropolitana de Fortaleza' do
|
8
|
+
expect(subject.nome).to eq('Metropolitana de Fortaleza')
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'deve retornar o ID 2303' do
|
12
|
+
expect(subject.id).to eq(2303)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'deve retornar a UF, que é um objeto IBGE::UF' do
|
16
|
+
expect(subject.uf).to be_an IBGE::UF
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
shared_examples_for 'array' do
|
21
|
+
it 'deve retornar um Array<IBGE::Mesorregiao>' do
|
22
|
+
aggregate_failures do
|
23
|
+
is_expected.to be_an Array
|
24
|
+
expect(subject.first).to be_an IBGE::Mesorregiao
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '.obter_mesorregioes' do
|
30
|
+
subject do
|
31
|
+
VCR.use_cassette('mesorregiao/obter_mesorregioes') do
|
32
|
+
IBGE::Mesorregiao.obter_mesorregioes
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it_has_behavior 'array'
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '.mesorregioes_por_uf' do
|
40
|
+
context 'recebendo um array de siglas (["BA", "CE"]) como parâmetro' do
|
41
|
+
subject do
|
42
|
+
VCR.use_cassette('mesorregiao/mesorregioes_por_uf:BA|CE', erb: { param: 'BA%7CCE' }) do
|
43
|
+
IBGE::Mesorregiao.mesorregioes_por_uf(%w(BA CE))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
it_has_behavior 'array'
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'recebendo um array de IDs ([29, 23]) como parâmetro' do
|
51
|
+
subject do
|
52
|
+
VCR.use_cassette('mesorregiao/mesorregioes_por_uf:BA|CE', erb: { param: '29%7C23' }) do
|
53
|
+
IBGE::Mesorregiao.mesorregioes_por_uf([29, 23])
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
it_has_behavior 'array'
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'recebendo uma sigla (CE) como parâmetro' do
|
61
|
+
subject do
|
62
|
+
VCR.use_cassette('mesorregiao/mesorregioes_por_uf:CE', erb: { param: 'CE' }) do
|
63
|
+
IBGE::Mesorregiao.mesorregioes_por_uf('CE')
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
it_has_behavior 'array'
|
68
|
+
end
|
69
|
+
|
70
|
+
context 'recebendo um ID (23) como parâmetro' do
|
71
|
+
subject do
|
72
|
+
VCR.use_cassette('mesorregiao/mesorregioes_por_uf:CE', erb: { param: 23 }) do
|
73
|
+
IBGE::Mesorregiao.mesorregioes_por_uf(23)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
it_has_behavior 'array'
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe '.mesorregioes_por_regiao' do
|
82
|
+
context 'recebendo um array de siglas (["N", "NE"]) como parâmetro' do
|
83
|
+
subject do
|
84
|
+
VCR.use_cassette('mesorregiao/mesorregioes_por_regiao:N|NE', erb: { param: 'N%7CNE' }) do
|
85
|
+
IBGE::Mesorregiao.mesorregioes_por_regiao(%w(N NE))
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
it_has_behavior 'array'
|
90
|
+
end
|
91
|
+
|
92
|
+
context 'recebendo um array de IDs ([1, 2]) como parâmetro' do
|
93
|
+
subject do
|
94
|
+
VCR.use_cassette('mesorregiao/mesorregioes_por_regiao:N|NE', erb: { param: '1%7C2' }) do
|
95
|
+
IBGE::Mesorregiao.mesorregioes_por_regiao([1, 2])
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
it_has_behavior 'array'
|
100
|
+
end
|
101
|
+
|
102
|
+
context 'recebendo um ID (2) como parâmetro' do
|
103
|
+
subject do
|
104
|
+
VCR.use_cassette('mesorregiao/mesorregioes_por_regiao:NE', erb: { param: 2 }) do
|
105
|
+
IBGE::Mesorregiao.mesorregioes_por_regiao(2)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
it_has_behavior 'array'
|
110
|
+
end
|
111
|
+
|
112
|
+
context 'recebendo uma sigla (NE) como parâmetro' do
|
113
|
+
subject do
|
114
|
+
VCR.use_cassette('mesorregiao/mesorregioes_por_regiao:NE', erb: { param: 'NE' }) do
|
115
|
+
IBGE::Mesorregiao.mesorregioes_por_regiao('NE')
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
it_has_behavior 'array'
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
describe '.mesorregioes_por_id' do
|
124
|
+
context 'recebendo um array de IDs ([2303, 2304]) como parâmetro' do
|
125
|
+
subject do
|
126
|
+
VCR.use_cassette('mesorregiao/mesorregioes_por_id:2303|2304', erb: { param: '2303|2304' }) do
|
127
|
+
IBGE::Mesorregiao.mesorregioes_por_id([2303, 2304])
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
it_has_behavior 'array'
|
132
|
+
end
|
133
|
+
|
134
|
+
context 'recebendo um ID (2303) como parâmetro' do
|
135
|
+
subject do
|
136
|
+
VCR.use_cassette('mesorregiao/mesorregioes_por_id:2303', erb: { param: '2303' }) do
|
137
|
+
IBGE::Mesorregiao.mesorregioes_por_id(2303)
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
it_has_behavior 'objeto'
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
@@ -0,0 +1,166 @@
|
|
1
|
+
describe IBGE::Microrregiao do
|
2
|
+
shared_examples_for 'objeto' do
|
3
|
+
it 'deve retornar um objeto IBGE::Microrregiao' do
|
4
|
+
is_expected.to be_an IBGE::Microrregiao
|
5
|
+
end
|
6
|
+
|
7
|
+
it 'deve retornar o ID 23016' do
|
8
|
+
expect(subject.id).to eq(23016)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'deve retornar o nome Fortaleza' do
|
12
|
+
expect(subject.nome).to eq('Fortaleza')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'deve retornar a mesorregião, que é um objeto IBGE::Mesorregiao' do
|
16
|
+
expect(subject.mesorregiao).to be_an IBGE::Mesorregiao
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
shared_examples_for 'array' do
|
21
|
+
it 'deve retornar um Array<IBGE::Microrregiao>' do
|
22
|
+
aggregate_failures do
|
23
|
+
is_expected.to be_an Array
|
24
|
+
expect(subject.first).to be_an IBGE::Microrregiao
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '.obter_microrregioes' do
|
30
|
+
subject do
|
31
|
+
VCR.use_cassette('microrregiao/obter_microrregioes') do
|
32
|
+
IBGE::Microrregiao.obter_microrregioes
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it_has_behavior 'array'
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '.microrregioes_por_id' do
|
40
|
+
context 'recebendo um array de IDs ([23016, 23017]) como parâmetro' do
|
41
|
+
subject do
|
42
|
+
VCR.use_cassette('microrregiao/microrregioes_por_id:23016|23017', erb: { param: '23016%7C23017' }) do
|
43
|
+
IBGE::Microrregiao.microrregioes_por_id([23016, 23017])
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
it_has_behavior 'array'
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'recebendo um ID (23016) como parâmetro' do
|
51
|
+
subject do
|
52
|
+
VCR.use_cassette('microrregiao/microrregioes_por_id:23016', erb: { param: '23016' }) do
|
53
|
+
IBGE::Microrregiao.microrregioes_por_id(23016)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
it_has_behavior 'objeto'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe '.microrregioes_por_uf' do
|
62
|
+
context 'recebendo um array de siglas (["BA", "CE"]) como parâmetro' do
|
63
|
+
subject do
|
64
|
+
VCR.use_cassette('microrregiao/microrregioes_por_uf:BA|CE', erb: { param: 'BA%7CCE' }) do
|
65
|
+
IBGE::Microrregiao.microrregioes_por_uf(%w(BA CE))
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
it_has_behavior 'array'
|
70
|
+
end
|
71
|
+
|
72
|
+
context 'recebendo um array de IDs ([29, 23]) como parâmetro' do
|
73
|
+
subject do
|
74
|
+
VCR.use_cassette('microrregiao/microrregioes_por_uf:BA|CE', erb: { param: '29%7C23' }) do
|
75
|
+
IBGE::Microrregiao.microrregioes_por_uf([29, 23])
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
it_has_behavior 'array'
|
80
|
+
end
|
81
|
+
|
82
|
+
context 'recebendo uma sigla (CE) como parâmetro' do
|
83
|
+
subject do
|
84
|
+
VCR.use_cassette('microrregiao/microrregioes_por_uf:CE', erb: { param: 'CE' }) do
|
85
|
+
IBGE::Microrregiao.microrregioes_por_uf('CE')
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
it_has_behavior 'array'
|
90
|
+
end
|
91
|
+
|
92
|
+
context 'recebendo um ID (23) como parâmetro' do
|
93
|
+
subject do
|
94
|
+
VCR.use_cassette('microrregiao/microrregioes_por_uf:CE', erb: { param: 23 }) do
|
95
|
+
IBGE::Microrregiao.microrregioes_por_uf(23)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
it_has_behavior 'array'
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe '.microrregioes_por_regiao' do
|
104
|
+
context 'recebendo um array de siglas (["N", "NE"]) como parâmetro' do
|
105
|
+
subject do
|
106
|
+
VCR.use_cassette('microrregiao/microrregioes_por_regiao:N|NE', erb: { param: 'N%7CNE' }) do
|
107
|
+
IBGE::Microrregiao.microrregioes_por_regiao(%w(N NE))
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
it_has_behavior 'array'
|
112
|
+
end
|
113
|
+
|
114
|
+
context 'recebendo um array de IDs ([1, 2]) como parâmetro' do
|
115
|
+
subject do
|
116
|
+
VCR.use_cassette('microrregiao/microrregioes_por_regiao:N|NE', erb: { param: '1%7C2' }) do
|
117
|
+
IBGE::Microrregiao.microrregioes_por_regiao([1, 2])
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
it_has_behavior 'array'
|
122
|
+
end
|
123
|
+
|
124
|
+
context 'recebendo um ID (2) como parâmetro' do
|
125
|
+
subject do
|
126
|
+
VCR.use_cassette('microrregiao/microrregioes_por_regiao:NE', erb: { param: 2 }) do
|
127
|
+
IBGE::Microrregiao.microrregioes_por_regiao(2)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
it_has_behavior 'array'
|
132
|
+
end
|
133
|
+
|
134
|
+
context 'recebendo uma sigla (NE) como parâmetro' do
|
135
|
+
subject do
|
136
|
+
VCR.use_cassette('microrregiao/microrregioes_por_regiao:NE', erb: { param: 'NE' }) do
|
137
|
+
IBGE::Microrregiao.microrregioes_por_regiao('NE')
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
it_has_behavior 'array'
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
describe '.microrregioes_por_mesorregiao' do
|
146
|
+
context 'recebendo um array de IDs ([2303, 2304]) como parâmetro' do
|
147
|
+
subject do
|
148
|
+
VCR.use_cassette('microrregiao/microrregioes_por_mesorregiao:2303|2304', erb: { param: '2303%7C2304' }) do
|
149
|
+
IBGE::Microrregiao.microrregioes_por_mesorregiao([2303, 2304])
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
it_has_behavior 'array'
|
154
|
+
end
|
155
|
+
|
156
|
+
context 'recebendo um ID (2303) como parâmetro' do
|
157
|
+
subject do
|
158
|
+
VCR.use_cassette('microrregiao/microrregioes_por_mesorregiao:2303', erb: { param: '2303' }) do
|
159
|
+
IBGE::Microrregiao.microrregioes_por_mesorregiao(2303)
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
it_has_behavior 'array'
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|