fipeapi 0.1.beta → 0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|