ibge-localidades 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 5b4f5cd87204648efae4de0ef0058832be3f99f3e84630623ef67cba63334781
4
+ data.tar.gz: 446cd679598cec86718c4badb73779853588466452dab65ebde898b8392d2738
5
+ SHA512:
6
+ metadata.gz: 9ebca9b5bc7579ebf63ebc44c15710b540d9f028284118763b7a3df476b35512abe6e160f23bd18f6e40a17e78295146527da297e9842e9243bf0caa59522654
7
+ data.tar.gz: 2412c3ef4568fbfe7ce4a0fefe03fcf67ba903124ed85f63c4805d44426b613826a70bce078294b80a2dc53bbaaa3bed9865029f713f3180b291fe8c365180d2
@@ -0,0 +1,47 @@
1
+ module IbgeLocalidades
2
+
3
+ require 'net/http'
4
+ require 'json'
5
+
6
+ VERSION = 'v1'
7
+ MAIN_URL = 'https://servicodados.ibge.gov.br/api/' + VERSION + '/localidades'
8
+
9
+ def get(url)
10
+ uri = URI(MAIN_URL + url)
11
+ resposta = JSON.parse(Net::HTTP.get(uri))
12
+
13
+ return resposta
14
+ rescue StandardError => e
15
+ return { 'error' => 'Ocorreu um erro.',
16
+ 'backtrace'=> e.backtrace.join("\n") }
17
+ end
18
+
19
+ def as_objects resposta
20
+ return self.new(resposta) if resposta.is_a? Hash
21
+ resposta.each_with_object([]) do |obj, arr|
22
+ arr << self.new(obj)
23
+ end
24
+ end
25
+
26
+ def buscar_por_relacionamento *args
27
+ args.each do |relacionamento|
28
+ define_singleton_method "listar_por_#{relacionamento}" do |id|
29
+ as_objects get(Module.const_get("IbgeLocalidades::#{relacionamento.capitalize}::PATH") + id + self::PATH)
30
+ end
31
+ end
32
+ end
33
+
34
+ def listar
35
+ as_objects get(self::PATH)
36
+ end
37
+
38
+ def find_by_id id
39
+ as_objects get(self::PATH + id)
40
+ end
41
+ end
42
+
43
+ require 'ibge_localidades/cidade.rb'
44
+ require 'ibge_localidades/mesorregiao.rb'
45
+ require 'ibge_localidades/microrregiao.rb'
46
+ require 'ibge_localidades/regiao.rb'
47
+ require 'ibge_localidades/estado.rb'
@@ -0,0 +1,17 @@
1
+ class IbgeLocalidades::Cidade
2
+
3
+ extend IbgeLocalidades
4
+
5
+ attr_reader :id, :nome, :microrregiao
6
+
7
+ buscar_por_relacionamento "mesorregiao", "microrregiao", "regiao", "estado"
8
+
9
+ PATH = "/municipios/"
10
+
11
+ def initialize(params={})
12
+ @id = params["id"]
13
+ @nome = params["nome"]
14
+ @microrregiao = ::IbgeLocalidades::Microrregiao.new(params["microrregiao"])
15
+ end
16
+
17
+ end
@@ -0,0 +1,18 @@
1
+ class IbgeLocalidades::Estado
2
+
3
+ extend IbgeLocalidades
4
+
5
+ attr_reader :id, :nome, :sigla, :regiao
6
+
7
+ buscar_por_relacionamento "regiao"
8
+
9
+ PATH = "/estados/"
10
+
11
+ def initialize(params={})
12
+ @id = params["id"]
13
+ @nome = params["nome"]
14
+ @sigla = params["sigla"]
15
+ @regiao = ::IbgeLocalidades::Regiao.new(params["regiao"])
16
+ end
17
+
18
+ end
@@ -0,0 +1,17 @@
1
+ class IbgeLocalidades::Mesorregiao
2
+
3
+ extend IbgeLocalidades
4
+
5
+ attr_reader :id, :nome, :estado
6
+
7
+ buscar_por_relacionamento "regiao", "estado"
8
+
9
+ PATH = "/mesorregioes/"
10
+
11
+ def initialize(params={})
12
+ @id = params["id"]
13
+ @nome = params["nome"]
14
+ @estado = ::IbgeLocalidades::Estado.new(params["UF"])
15
+ end
16
+
17
+ end
@@ -0,0 +1,17 @@
1
+ class IbgeLocalidades::Microrregiao
2
+
3
+ extend IbgeLocalidades
4
+
5
+ attr_reader :id, :nome, :mesorregiao
6
+
7
+ buscar_por_relacionamento "mesorregiao", "regiao", "estado"
8
+
9
+ PATH = "/microrregioes/"
10
+
11
+ def initialize(params={})
12
+ @id = params["id"]
13
+ @nome = params["nome"]
14
+ @mesorregiao = ::IbgeLocalidades::Mesorregiao.new(params["mesorregiao"])
15
+ end
16
+
17
+ end
@@ -0,0 +1,15 @@
1
+ class IbgeLocalidades::Regiao
2
+
3
+ extend IbgeLocalidades
4
+
5
+ attr_reader :id, :nome, :sigla
6
+
7
+ PATH = "/regioes/"
8
+
9
+ def initialize(params={})
10
+ @id = params["id"]
11
+ @nome = params["nome"]
12
+ @sigla = params["sigla"]
13
+ end
14
+
15
+ end
metadata ADDED
@@ -0,0 +1,50 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ibge-localidades
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Victor Palombo Silvano
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-07-20 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Uma gem criada para acessar os dados da API do IBGE (cidades, estados,
14
+ regiões etc)
15
+ email: victorpsilvano@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/ibge-localidades.rb
21
+ - lib/ibge_localidades/cidade.rb
22
+ - lib/ibge_localidades/estado.rb
23
+ - lib/ibge_localidades/mesorregiao.rb
24
+ - lib/ibge_localidades/microrregiao.rb
25
+ - lib/ibge_localidades/regiao.rb
26
+ homepage: https://rubygems.org/gems/ibge-localidades
27
+ licenses:
28
+ - MIT
29
+ metadata: {}
30
+ post_install_message:
31
+ rdoc_options: []
32
+ require_paths:
33
+ - lib
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ requirements: []
45
+ rubygems_version: 3.0.3
46
+ signing_key:
47
+ specification_version: 4
48
+ summary: Uma gem criada para acessar os dados da API do IBGE (cidades, estados, regiões
49
+ etc)
50
+ test_files: []