fipeapi 0.1.beta → 0.1
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 +4 -4
- data/Gemfile +1 -0
- data/README.md +19 -75
- data/check_year_sufix.rb +13 -0
- data/fipeapi.gemspec +1 -0
- data/lib/core_ext/myparty.rb +10 -0
- data/lib/fipeapi.rb +6 -3
- data/lib/fipeapi/ano.rb +45 -0
- data/lib/fipeapi/marca.rb +8 -6
- data/lib/fipeapi/modelo.rb +15 -28
- data/lib/fipeapi/valor.rb +39 -0
- data/lib/fipeapi/version.rb +1 -1
- metadata +22 -6
- data/lib/fipeapi/preco.rb +0 -28
- data/lib/fipeapi/veiculo.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b738574cb618bf495fd9e074aaef856b68dec7d2
|
4
|
+
data.tar.gz: 1c0b07546fc95665c281858e3a356a2cdffffa77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b3fb1a04c514eabd3f15ae0acdb476c71cf3eb6fbff442755badb87264e1c09d1c37f82a3338cad0b6e5533134b4c5653db7e61a29a1db9b19e872be9a41bc2
|
7
|
+
data.tar.gz: 40bbfec4f98b08efd3b3e4c268cb372f995ed38325dc1d18f1e1445bf1073feb96ff8c2b762bf0c056af54817e3e51f6ba80eafce87ca09a6625bd631f4e654d
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
Bom, se você precisa consultar em tempo real a base da FIPE, esse é o projeto
|
4
4
|
que você quer usar.
|
5
5
|
|
6
|
-
Nós usamos a [
|
6
|
+
Nós usamos a [FipeApi](http://deividfortuna.github.io/fipe/), uma api para a
|
7
7
|
base da FIPE e devolvemos objetos para todos os requests.
|
8
8
|
|
9
9
|
OBS: *Não temos como garantir a disponibilidade da API, e nem nós, nem os
|
@@ -28,83 +28,27 @@ Or install it yourself as:
|
|
28
28
|
|
29
29
|
## Usage
|
30
30
|
|
31
|
-
|
32
31
|
```
|
33
32
|
[1] pry(main)> marca = FipeApi::Marca.todas.first
|
34
|
-
=> #<FipeApi::Marca:
|
35
|
-
[2] pry(main)>
|
36
|
-
|
37
|
-
@
|
38
|
-
|
39
|
-
|
40
|
-
@id_marca="
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
@
|
45
|
-
|
46
|
-
=> #<FipeApi::Modelo:0x00000001a92f30
|
47
|
-
@fipe_codigo="2014-1",
|
48
|
-
@fipe_marca="Fiat",
|
49
|
-
@id="2014-1",
|
50
|
-
@id_marca="21",
|
51
|
-
@id_veiculo="4828",
|
52
|
-
@key="2014-1",
|
53
|
-
@marca="FIAT",
|
54
|
-
@name="2014 Gasolina",
|
55
|
-
@tipo_do_veiculo="carro",
|
56
|
-
@veiculo="Palio 1.0 ECONOMY Fire Flex 8V 4p">
|
57
|
-
[4] pry(main)> preco = FipeApi::Preco.por_marca_codigo_do_veiculo_e_ano('carro', '21', '4828', '2014-1')
|
58
|
-
=> #<FipeApi::Preco:0x00000003670db0
|
59
|
-
@ano_modelo="2014",
|
60
|
-
@combustivel="Gasolina",
|
61
|
-
@fipe_codigo="001267-0",
|
62
|
-
@id="2014",
|
63
|
-
@key="palio-2014",
|
64
|
-
@marca="Fiat",
|
65
|
-
@name="Palio 1.0 ECONOMY Fire Flex 8V 4p",
|
66
|
-
@preco="R$ 24.541,00",
|
67
|
-
@referencia="abril de 2016",
|
68
|
-
@time=0.0,
|
69
|
-
@veiculo="Palio 1.0 ECONOMY Fire Flex 8V 4p">
|
70
|
-
[5] pry(main)>
|
71
|
-
[6] pry(main)> marca = FipeApi::Marca.todas.first
|
72
|
-
=> #<FipeApi::Marca:0x000000034f7470 @fipe_name="Audi", @id=6, @key="audi-6", @name="AUDI", @order=2, @tipo_do_veiculo="carros">
|
73
|
-
[7] pry(main)> veiculo = marca.veiculos.first
|
74
|
-
=> #<FipeApi::Veiculo:0x000000031e3590
|
75
|
-
@fipe_marca="Audi",
|
76
|
-
@fipe_name="100 2.8 V6",
|
77
|
-
@id="43",
|
78
|
-
@id_marca=6,
|
79
|
-
@key="100-43",
|
80
|
-
@marca="AUDI",
|
81
|
-
@name="100 2.8 V6",
|
82
|
-
@tipo="carros">
|
83
|
-
[8] pry(main)> modelo = veiculo.modelos.first
|
84
|
-
=> #<FipeApi::Modelo:0x000000030c2ad0
|
85
|
-
@fipe_codigo="1995-1",
|
86
|
-
@fipe_marca="Audi",
|
87
|
-
@id="1995-1",
|
88
|
-
@id_marca=6,
|
89
|
-
@id_veiculo="43",
|
90
|
-
@key="1995-1",
|
91
|
-
@marca="AUDI",
|
92
|
-
@name="1995 Gasolina",
|
93
|
-
@tipo_do_veiculo="carros",
|
94
|
-
@veiculo="100 2.8 V6">
|
95
|
-
[9] pry(main)> preco = modelo.preco
|
96
|
-
=> #<FipeApi::Preco:0x000000030051b0
|
97
|
-
@ano_modelo="1995",
|
33
|
+
=> #<FipeApi::Marca:0x00000002192830 @codigo=1, @nome="Acura", @tipo_do_veiculo="carros">
|
34
|
+
[2] pry(main)>
|
35
|
+
[3] pry(main)> modelo = FipeApi::Modelo.por_marca(marca.tipo_do_veiculo, marca.codigo).first
|
36
|
+
=> #<FipeApi::Modelo:0x00000002f70740 @codigo=1, @id_marca=1, @nome="Integra GS 1.8", @tipo_do_veiculo="carros">
|
37
|
+
[4] pry(main)>
|
38
|
+
[5] pry(main)> ano = FipeApi::Ano.por_marca_e_modelo(modelo.tipo_do_veiculo, modelo.id_marca, modelo.codigo).first
|
39
|
+
=> #<FipeApi::Ano:0x000000020d5960 @codigo="1992-1", @id_marca=1, @id_modelo=1, @nome="1992 Gasolina", @tipo_do_veiculo="carros">
|
40
|
+
[6] pry(main)>
|
41
|
+
[7] pry(main)> valor = FipeApi::Valor.por_marca_modelo_e_id_fipe(ano.tipo_do_veiculo, ano.id_marca, ano.id_modelo, ano.codigo)
|
42
|
+
=> #<FipeApi::Valor:0x0000000206f9d0
|
43
|
+
@ano_modelo=1992,
|
44
|
+
@codigo_fipe="038003-2 ",
|
98
45
|
@combustivel="Gasolina",
|
99
|
-
@
|
100
|
-
@
|
101
|
-
@
|
102
|
-
@
|
103
|
-
@
|
104
|
-
@
|
105
|
-
@referencia="abril de 2016",
|
106
|
-
@time=0.009999999999990905,
|
107
|
-
@veiculo="100 2.8 V6">
|
46
|
+
@marca="Acura",
|
47
|
+
@mes_referencia="maio de 2016",
|
48
|
+
@modelo="Integra GS 1.8",
|
49
|
+
@sigla_combustivel="G",
|
50
|
+
@tipo_veiculo=1,
|
51
|
+
@valor="R$ 13.198,00">
|
108
52
|
```
|
109
53
|
|
110
54
|
## License
|
data/check_year_sufix.rb
ADDED
data/fipeapi.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_dependency 'httparty', '0.13'
|
22
|
+
spec.add_dependency 'activesupport', '~> 4.2'
|
22
23
|
spec.add_development_dependency 'bundler', '~> 1.11'
|
23
24
|
spec.add_development_dependency 'rake', '~> 10.0'
|
24
25
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
data/lib/fipeapi.rb
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
require 'fipeapi/version'
|
2
2
|
require 'httparty'
|
3
|
+
|
4
|
+
require 'active_support/inflector'
|
5
|
+
require_relative './core_ext/myparty'
|
3
6
|
require_relative 'fipeapi/objeto_com_construtor'
|
4
7
|
require_relative 'fipeapi/marca'
|
5
|
-
require_relative 'fipeapi/veiculo'
|
6
8
|
require_relative 'fipeapi/modelo'
|
7
|
-
require_relative 'fipeapi/
|
9
|
+
require_relative 'fipeapi/ano'
|
10
|
+
require_relative 'fipeapi/valor'
|
8
11
|
|
9
12
|
module FipeApi
|
10
|
-
API_URL = '
|
13
|
+
API_URL = 'https://fipe-parallelum.rhcloud.com/api/v1'
|
11
14
|
CARRO = 'carros'
|
12
15
|
MOTO = 'motos'
|
13
16
|
CAMINHAO = 'caminhoes'
|
data/lib/fipeapi/ano.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
module FipeApi
|
2
|
+
class Ano
|
3
|
+
include ObjetoComConstrutor
|
4
|
+
|
5
|
+
attr_accessor :id_marca, :id_modelo, :tipo_do_veiculo, :nome, :codigo
|
6
|
+
|
7
|
+
def initialize(tipo_do_veiculo, id_marca, id_modelo, opts = {})
|
8
|
+
self.tipo_do_veiculo = tipo_do_veiculo
|
9
|
+
self.id_marca = id_marca
|
10
|
+
self.id_modelo = id_modelo
|
11
|
+
|
12
|
+
super(opts)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.por_marca_e_modelo(
|
16
|
+
tipo_do_veiculo,
|
17
|
+
id_marca,
|
18
|
+
id_modelo
|
19
|
+
)
|
20
|
+
MyParty
|
21
|
+
.get(endpoint(tipo_do_veiculo, id_marca, id_modelo))
|
22
|
+
.parsed_response.map do |ano|
|
23
|
+
Ano.new(tipo_do_veiculo, id_marca, id_modelo, ano)
|
24
|
+
end
|
25
|
+
rescue HTTParty::Error
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
|
29
|
+
def valor
|
30
|
+
Valor.por_marca_modelo_e_ano(
|
31
|
+
tipo_do_veiculo,
|
32
|
+
id_marca,
|
33
|
+
id_modelo,
|
34
|
+
codigo
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def self.endpoint(tipo_do_veiculo, id_marca, id_modelo)
|
41
|
+
"#{FipeApi::API_URL}/#{tipo_do_veiculo}/marcas/#{id_marca}/" \
|
42
|
+
"modelos/#{id_modelo}/anos"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/fipeapi/marca.rb
CHANGED
@@ -2,23 +2,25 @@ module FipeApi
|
|
2
2
|
class Marca
|
3
3
|
include ObjetoComConstrutor
|
4
4
|
|
5
|
-
attr_accessor :
|
5
|
+
attr_accessor :codigo, :nome, :tipo_do_veiculo
|
6
6
|
|
7
7
|
def self.todas(tipo_do_veiculo=CARRO)
|
8
|
-
|
9
|
-
.get("#{API_URL}/#{tipo_do_veiculo}/marcas
|
8
|
+
MyParty
|
9
|
+
.get("#{API_URL}/#{tipo_do_veiculo}/marcas")
|
10
10
|
.parsed_response.map { |marca| Marca.new(tipo_do_veiculo, marca) }
|
11
|
+
rescue HTTParty::Error
|
12
|
+
nil
|
11
13
|
end
|
12
14
|
|
13
15
|
def initialize(tipo_do_veiculo, opts = {})
|
14
16
|
self.tipo_do_veiculo = tipo_do_veiculo
|
15
|
-
self.
|
17
|
+
self.codigo = tipo_do_veiculo
|
16
18
|
|
17
19
|
super(opts)
|
18
20
|
end
|
19
21
|
|
20
|
-
def
|
21
|
-
|
22
|
+
def modelos
|
23
|
+
Modelo.por_marca(tipo_do_veiculo, codigo)
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
data/lib/fipeapi/modelo.rb
CHANGED
@@ -2,43 +2,30 @@ module FipeApi
|
|
2
2
|
class Modelo
|
3
3
|
include ObjetoComConstrutor
|
4
4
|
|
5
|
-
attr_accessor :
|
6
|
-
:id, :id_veiculo, :tipo_do_veiculo, :id_marca
|
5
|
+
attr_accessor :id_marca, :tipo_do_veiculo, :nome, :codigo
|
7
6
|
|
8
|
-
def
|
7
|
+
def self.por_marca(tipo_do_veiculo, id_marca)
|
8
|
+
MyParty
|
9
|
+
.get("#{API_URL}/#{tipo_do_veiculo}/marcas/#{id_marca}/modelos")
|
10
|
+
.parsed_response['modelos'].map do |modelo|
|
11
|
+
Modelo.new(tipo_do_veiculo, id_marca, modelo)
|
12
|
+
end
|
13
|
+
rescue HTTParty::Error
|
14
|
+
nil
|
15
|
+
end
|
16
|
+
|
17
|
+
def initialize(tipo_do_veiculo, id_marca, opts = {})
|
9
18
|
self.tipo_do_veiculo = tipo_do_veiculo
|
10
19
|
self.id_marca = id_marca
|
11
|
-
self.id_veiculo = id_veiculo
|
12
|
-
|
13
20
|
super(opts)
|
14
21
|
end
|
15
22
|
|
16
|
-
def
|
17
|
-
|
18
|
-
id_marca,
|
19
|
-
codigo_veiculo
|
20
|
-
)
|
21
|
-
HTTParty
|
22
|
-
.get(endpoint(tipo_do_veiculo, id_marca, codigo_veiculo))
|
23
|
-
.parsed_response.map do |modelo|
|
24
|
-
Modelo.new(tipo_do_veiculo, id_marca, codigo_veiculo, modelo)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def preco
|
29
|
-
Preco.por_marca_codigo_do_veiculo_e_ano(
|
23
|
+
def anos
|
24
|
+
Ano.por_marca_e_modelo(
|
30
25
|
tipo_do_veiculo,
|
31
26
|
id_marca,
|
32
|
-
|
33
|
-
key
|
27
|
+
codigo
|
34
28
|
)
|
35
29
|
end
|
36
|
-
|
37
|
-
private
|
38
|
-
|
39
|
-
def self.endpoint(tipo_do_veiculo, id_marca, codigo_veiculo)
|
40
|
-
"#{FipeApi::API_URL}/#{tipo_do_veiculo}/veiculo/#{id_marca}/" \
|
41
|
-
"#{codigo_veiculo}.json"
|
42
|
-
end
|
43
30
|
end
|
44
31
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module FipeApi
|
2
|
+
class Valor
|
3
|
+
include ObjetoComConstrutor
|
4
|
+
|
5
|
+
attr_accessor :valor, :marca, :modelo, :ano_modelo, :combustivel,
|
6
|
+
:codigo_fipe, :mes_referencia, :tipo_veiculo, :sigla_combustivel
|
7
|
+
|
8
|
+
def self.por_marca_modelo_e_ano(
|
9
|
+
tipo_do_veiculo,
|
10
|
+
id_marca,
|
11
|
+
id_modelo,
|
12
|
+
ano
|
13
|
+
)
|
14
|
+
Valor.new(
|
15
|
+
parse_json_response(
|
16
|
+
MyParty.get(
|
17
|
+
endpoint(tipo_do_veiculo, id_marca, id_modelo, ano)
|
18
|
+
).parsed_response
|
19
|
+
)
|
20
|
+
)
|
21
|
+
rescue HTTParty::Error
|
22
|
+
nil
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def self.parse_json_response(json_response)
|
28
|
+
Hash[json_response.map do |key, value|
|
29
|
+
[key.underscore, value]
|
30
|
+
end]
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def self.endpoint(tipo_do_veiculo, id_marca, id_modelo, ano)
|
35
|
+
"#{FipeApi::API_URL}/#{tipo_do_veiculo}/marcas/#{id_marca}/" \
|
36
|
+
"modelos/#{id_modelo}/anos/#{ano}"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/fipeapi/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fipeapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: '0.1'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rafael da Silva Almeida
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.13'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.2'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.2'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -83,13 +97,15 @@ files:
|
|
83
97
|
- Rakefile
|
84
98
|
- bin/console
|
85
99
|
- bin/setup
|
100
|
+
- check_year_sufix.rb
|
86
101
|
- fipeapi.gemspec
|
102
|
+
- lib/core_ext/myparty.rb
|
87
103
|
- lib/fipeapi.rb
|
104
|
+
- lib/fipeapi/ano.rb
|
88
105
|
- lib/fipeapi/marca.rb
|
89
106
|
- lib/fipeapi/modelo.rb
|
90
107
|
- lib/fipeapi/objeto_com_construtor.rb
|
91
|
-
- lib/fipeapi/
|
92
|
-
- lib/fipeapi/veiculo.rb
|
108
|
+
- lib/fipeapi/valor.rb
|
93
109
|
- lib/fipeapi/version.rb
|
94
110
|
homepage: http://github.com/stupied4ever/fipeapi
|
95
111
|
licenses:
|
@@ -106,9 +122,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
106
122
|
version: '0'
|
107
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
124
|
requirements:
|
109
|
-
- - "
|
125
|
+
- - ">="
|
110
126
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
127
|
+
version: '0'
|
112
128
|
requirements: []
|
113
129
|
rubyforge_project:
|
114
130
|
rubygems_version: 2.5.1
|
data/lib/fipeapi/preco.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
module FipeApi
|
2
|
-
class Preco
|
3
|
-
include ObjetoComConstrutor
|
4
|
-
|
5
|
-
attr_accessor :referencia, :fipe_codigo, :name, :combustivel, :marca,
|
6
|
-
:ano_modelo, :preco, :key, :time, :veiculo, :id
|
7
|
-
|
8
|
-
def self.por_marca_codigo_do_veiculo_e_ano(
|
9
|
-
tipo_do_veiculo,
|
10
|
-
id_marca,
|
11
|
-
id_veiculo,
|
12
|
-
key_preco
|
13
|
-
)
|
14
|
-
Preco.new(
|
15
|
-
HTTParty
|
16
|
-
.get(endpoint(tipo_do_veiculo, id_marca, id_veiculo, key_preco))
|
17
|
-
.parsed_response
|
18
|
-
)
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def self.endpoint(tipo_do_veiculo, id_marca, id_veiculo, key_preco)
|
24
|
-
"#{FipeApi::API_URL}/#{tipo_do_veiculo}/veiculo/#{id_marca}/" \
|
25
|
-
"#{id_veiculo}/#{key_preco}.json"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
data/lib/fipeapi/veiculo.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
module FipeApi
|
2
|
-
class Veiculo
|
3
|
-
include ObjetoComConstrutor
|
4
|
-
|
5
|
-
attr_accessor :fipe_marca, :marca, :key, :id, :fipe_name, :tipo, :id_marca,
|
6
|
-
:name
|
7
|
-
|
8
|
-
def self.por_marca(tipo_do_veiculo, id_marca)
|
9
|
-
HTTParty
|
10
|
-
.get("#{API_URL}/#{tipo_do_veiculo}/veiculos/#{id_marca}.json")
|
11
|
-
.parsed_response.map do |veiculo|
|
12
|
-
Veiculo.new(tipo_do_veiculo, id_marca, veiculo)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def initialize(tipo, id_marca, opts = {})
|
17
|
-
self.tipo = tipo
|
18
|
-
self.id_marca = id_marca
|
19
|
-
super(opts)
|
20
|
-
end
|
21
|
-
|
22
|
-
def modelos
|
23
|
-
Modelo.por_marca_e_id_do_veiculo(
|
24
|
-
tipo,
|
25
|
-
id_marca,
|
26
|
-
id
|
27
|
-
)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|