vindetta 0.7.0 → 0.8.0
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/.rspec +0 -1
- data/.rubocop.yml +3 -0
- data/Gemfile +1 -1
- data/Guardfile +1 -1
- data/Rakefile +2 -2
- data/bin/console +3 -3
- data/exe/vindetta +1 -1
- data/lib/vindetta/cli.rb +17 -9
- data/lib/vindetta/data/vis.yaml +93 -0
- data/lib/vindetta/data/wmi.yaml +461 -0
- data/lib/vindetta/decoder.rb +9 -0
- data/lib/vindetta/generator.rb +2 -2
- data/lib/vindetta/locale/en.yml +2 -0
- data/lib/vindetta/transliterator.rb +1 -1
- data/lib/vindetta/validator.rb +4 -4
- data/lib/vindetta/version.rb +1 -1
- data/lib/vindetta/vin/vds.rb +21 -0
- data/lib/vindetta/vin/vis.rb +47 -0
- data/lib/vindetta/vin/wmi.rb +29 -0
- data/lib/vindetta/vin.rb +60 -3
- data/lib/vindetta.rb +11 -7
- data/vindetta.gemspec +23 -21
- metadata +40 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 056cbe8322369ee845c9cd121e97d581e2f5f364
|
|
4
|
+
data.tar.gz: 584d4c70620eb9f855d9ff6ee65e6814a778c103
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1136fa7046ba29e3cbf80f8aaeb5c2472cb4ff7b39c3b0d878a80f9b6bcba295890f0f9f8d87e8b241fde5456ae22367b2a2306cc46115de6f7724d63c800656
|
|
7
|
+
data.tar.gz: caf48c6aee89da3a836831663a5551ecba75853b3b9f60d9ba672bf39e48982bf1bd3411734d0b1d2418d8606347ec8785c7c9bdbac5cbaaf5d3ba5376902f07
|
data/.rspec
CHANGED
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
data/Guardfile
CHANGED
|
@@ -41,7 +41,7 @@ guard :rspec, cmd: "bundle exec rspec" do
|
|
|
41
41
|
dsl.watch_spec_files_for(ruby.lib_files)
|
|
42
42
|
|
|
43
43
|
# Rails files
|
|
44
|
-
rails = dsl.rails(view_extensions: %w
|
|
44
|
+
rails = dsl.rails(view_extensions: %w[erb haml slim])
|
|
45
45
|
dsl.watch_spec_files_for(rails.app_files)
|
|
46
46
|
dsl.watch_spec_files_for(rails.views)
|
|
47
47
|
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/exe/vindetta
CHANGED
data/lib/vindetta/cli.rb
CHANGED
|
@@ -1,28 +1,36 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "gli"
|
|
2
2
|
|
|
3
3
|
module Vindetta
|
|
4
4
|
class CLI
|
|
5
5
|
extend GLI::App
|
|
6
6
|
|
|
7
|
-
program_desc
|
|
7
|
+
program_desc "Vehicle Identification Number (VIN) CLI"
|
|
8
8
|
|
|
9
|
-
desc
|
|
10
|
-
arg_name
|
|
11
|
-
command [
|
|
9
|
+
desc "Transliterates a VIN character"
|
|
10
|
+
arg_name "character"
|
|
11
|
+
command %i[transliterate t] do |c|
|
|
12
12
|
c.action do |_global, _options, args|
|
|
13
13
|
puts Vindetta::Transliterator.run(args.first)
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
desc
|
|
18
|
-
command [
|
|
17
|
+
desc "Validates a VIN"
|
|
18
|
+
command %i[validate v] do |c|
|
|
19
19
|
c.action do |_global, _options, args|
|
|
20
20
|
puts Vindetta::Validator.run(args.first)
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
-
desc
|
|
25
|
-
command [
|
|
24
|
+
desc "Decodes a VIN"
|
|
25
|
+
command %i[decode d] do |c|
|
|
26
|
+
c.action do |_global, _options, _args|
|
|
27
|
+
vin = Vindetta::Vin.new(_args.first)
|
|
28
|
+
puts Vindetta::Decoder.decode(vin)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
desc "Generates a random VIN"
|
|
33
|
+
command %i[generate g] do |c|
|
|
26
34
|
c.action do |_global, _options, _args|
|
|
27
35
|
puts Vindetta::Generator.generate
|
|
28
36
|
end
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
year:
|
|
4
|
+
A:
|
|
5
|
+
- 1980
|
|
6
|
+
- 2010
|
|
7
|
+
B:
|
|
8
|
+
- 1981
|
|
9
|
+
- 2011
|
|
10
|
+
C:
|
|
11
|
+
- 1982
|
|
12
|
+
- 2012
|
|
13
|
+
D:
|
|
14
|
+
- 1983
|
|
15
|
+
- 2013
|
|
16
|
+
E:
|
|
17
|
+
- 1984
|
|
18
|
+
- 2014
|
|
19
|
+
F:
|
|
20
|
+
- 1985
|
|
21
|
+
- 2015
|
|
22
|
+
G:
|
|
23
|
+
- 1986
|
|
24
|
+
- 2016
|
|
25
|
+
H:
|
|
26
|
+
- 1987
|
|
27
|
+
- 2017
|
|
28
|
+
J:
|
|
29
|
+
- 1988
|
|
30
|
+
- 2018
|
|
31
|
+
K:
|
|
32
|
+
- 1989
|
|
33
|
+
- 2019
|
|
34
|
+
L:
|
|
35
|
+
- 1990
|
|
36
|
+
- 2020
|
|
37
|
+
M:
|
|
38
|
+
- 1991
|
|
39
|
+
- 2021
|
|
40
|
+
N:
|
|
41
|
+
- 1992
|
|
42
|
+
- 2022
|
|
43
|
+
P:
|
|
44
|
+
- 1993
|
|
45
|
+
- 2023
|
|
46
|
+
R:
|
|
47
|
+
- 1994
|
|
48
|
+
- 2024
|
|
49
|
+
S:
|
|
50
|
+
- 1995
|
|
51
|
+
- 2025
|
|
52
|
+
T:
|
|
53
|
+
- 1996
|
|
54
|
+
- 2026
|
|
55
|
+
V:
|
|
56
|
+
- 1997
|
|
57
|
+
- 2027
|
|
58
|
+
W:
|
|
59
|
+
- 1998
|
|
60
|
+
- 2028
|
|
61
|
+
X:
|
|
62
|
+
- 1999
|
|
63
|
+
- 2029
|
|
64
|
+
Y:
|
|
65
|
+
- 2000
|
|
66
|
+
- 2030
|
|
67
|
+
"1":
|
|
68
|
+
- 2001
|
|
69
|
+
- 2031
|
|
70
|
+
"2":
|
|
71
|
+
- 2002
|
|
72
|
+
- 2032
|
|
73
|
+
"3":
|
|
74
|
+
- 2003
|
|
75
|
+
- 2033
|
|
76
|
+
"4":
|
|
77
|
+
- 2004
|
|
78
|
+
- 2034
|
|
79
|
+
"5":
|
|
80
|
+
- 2005
|
|
81
|
+
- 2035
|
|
82
|
+
"6":
|
|
83
|
+
- 2006
|
|
84
|
+
- 2036
|
|
85
|
+
"7":
|
|
86
|
+
- 2007
|
|
87
|
+
- 2037
|
|
88
|
+
"8":
|
|
89
|
+
- 2008
|
|
90
|
+
- 2038
|
|
91
|
+
"9":
|
|
92
|
+
- 2009
|
|
93
|
+
- 2039
|
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
AAV: Volkswagen South Africa
|
|
4
|
+
AC5: Hyundai South Africa
|
|
5
|
+
ADD: Hyundai South Africa
|
|
6
|
+
AFA: Ford South Africa
|
|
7
|
+
AHT: Toyota South Africa
|
|
8
|
+
JA3: Mitsubishi
|
|
9
|
+
JA4: Mitsubishi
|
|
10
|
+
JA: Isuzu
|
|
11
|
+
JD: Daihatsu
|
|
12
|
+
JF: Fuji Heavy Industries (Subaru)
|
|
13
|
+
JH: Honda
|
|
14
|
+
JK: Kawasaki (motorcycles)
|
|
15
|
+
JL5: Mitsubishi Fuso
|
|
16
|
+
JMB: Mitsubishi Motors
|
|
17
|
+
JMY: Mitsubishi Motors
|
|
18
|
+
JMZ: Mazda
|
|
19
|
+
JN: Nissan
|
|
20
|
+
JS: Suzuki
|
|
21
|
+
JT: Toyota
|
|
22
|
+
JY: Yamaha (motorcycles)
|
|
23
|
+
KL: Daewoo General Motors South Korea
|
|
24
|
+
KM: Hyundai
|
|
25
|
+
KMY: Daelim (motorcycles)
|
|
26
|
+
KM1: Hyosung (motorcycles)
|
|
27
|
+
KN: Kia
|
|
28
|
+
KNM: Renault Samsung
|
|
29
|
+
KPA: SsangYong
|
|
30
|
+
KPT: SsangYong
|
|
31
|
+
LAN: Changzhou Yamasaki Motorcycle
|
|
32
|
+
LBB: Zhejiang Qianjiang Motorcycle (Keeway/Generic)
|
|
33
|
+
LBE: Beijing Hyundai
|
|
34
|
+
LBM: Zongshen Piaggio
|
|
35
|
+
LBP: Chongqing Jainshe Yamaha (motorcycles)
|
|
36
|
+
LB2: Geely Motorcycles
|
|
37
|
+
LCE: Hangzhou Chunfeng Motorcycles (CFMOTO)
|
|
38
|
+
LDC: Dong Feng Peugeot Citroen (DPCA), China
|
|
39
|
+
LDD: Dandong Huanghai Automobile
|
|
40
|
+
LDN: SouEast Motor
|
|
41
|
+
LDY: Zhongtong Coach, China
|
|
42
|
+
LET: Jiangling-Isuzu Motors, China
|
|
43
|
+
LE4: Beijing Benz, China
|
|
44
|
+
LFB: FAW, China (busses)
|
|
45
|
+
LFG: Taizhou Chuanl Motorcycle Manufacturing
|
|
46
|
+
LFP: FAW, China (passenger vehicles)
|
|
47
|
+
LFT: FAW, China (trailers)
|
|
48
|
+
LFV: FAW-Volkswagen, China
|
|
49
|
+
LFW: FAW JieFang, China
|
|
50
|
+
LFY: Changshu Light Motorcycle Factory
|
|
51
|
+
LGB: Dong Feng (DFM), China
|
|
52
|
+
LGH: Qoros (formerly Dong Feng (DFM)), China
|
|
53
|
+
LGX: BYD Auto, China
|
|
54
|
+
LHB: Beijing Automotive Industry Holding
|
|
55
|
+
LH1: FAW-Haima, China
|
|
56
|
+
LJC: JAC, China
|
|
57
|
+
LJ1: JAC, China
|
|
58
|
+
LKL: Suzhou King Long, China
|
|
59
|
+
LL6: Hunan Changfeng Manufacture Joint-Stock
|
|
60
|
+
LL8: Linhai (ATV)
|
|
61
|
+
LMC: Suzuki Hong Kong (motorcycles)
|
|
62
|
+
LPR: Yamaha Hong Kong (motorcycles)
|
|
63
|
+
LSG: Shanghai General Motors, China
|
|
64
|
+
LSJ: MG Motor UK Limited - SAIC Motor, Shanghai, China
|
|
65
|
+
LSV: Shanghai Volkswagen, China
|
|
66
|
+
LSY: Brilliance Zhonghua
|
|
67
|
+
LTV: Toyota Tian Jin
|
|
68
|
+
LUC: Guangqi Honda, China
|
|
69
|
+
LVS: Ford Chang An
|
|
70
|
+
LVV: Chery, China
|
|
71
|
+
LVZ: Dong Feng Sokon Motor Company (DFSK)
|
|
72
|
+
LZM: MAN China
|
|
73
|
+
LZE: Isuzu Guangzhou, China
|
|
74
|
+
LZG: Shaanxi Automobile Group, China
|
|
75
|
+
LZP: Zhongshan Guochi Motorcycle (Baotian)
|
|
76
|
+
LZY: Yutong Zhengzhou, China
|
|
77
|
+
LZZ: Chongqing Shuangzing Mech & Elec (Howo)
|
|
78
|
+
L4B: Xingyue Group (motorcycles)
|
|
79
|
+
L5C: KangDi (ATV)
|
|
80
|
+
L5K: Zhejiang Yongkang Easy Vehicle
|
|
81
|
+
L5N: Zhejiang Taotao, China (ATV & motorcycles)
|
|
82
|
+
L5Y: Merato Motorcycle Taizhou Zhongneng
|
|
83
|
+
L85: Zhejiang Yongkang Huabao Electric Appliance
|
|
84
|
+
L8X: Zhejiang Summit Huawin Motorcycle
|
|
85
|
+
MAB: Mahindra & Mahindra
|
|
86
|
+
MAC: Mahindra & Mahindra
|
|
87
|
+
MAJ: Ford India
|
|
88
|
+
MAK: Honda Siel Cars India
|
|
89
|
+
MAL: Hyundai
|
|
90
|
+
MAT: Tata Motors
|
|
91
|
+
MA1: Mahindra & Mahindra
|
|
92
|
+
MA3: Suzuki India (Maruti)
|
|
93
|
+
MA6: GM India
|
|
94
|
+
MA7: Mitsubishi India (formerly Honda)
|
|
95
|
+
MBH: Suzuki India (Maruti)
|
|
96
|
+
MBJ: Toyota India
|
|
97
|
+
MBR: Mercedes-Benz India
|
|
98
|
+
MB1: Ashok Leyland
|
|
99
|
+
MCA: Fiat India
|
|
100
|
+
MCB: GM India
|
|
101
|
+
MC2: Volvo Eicher commercial vehicles limited.
|
|
102
|
+
MDH: Nissan India
|
|
103
|
+
MD2: Bajaj Auto
|
|
104
|
+
MEE: Renault India
|
|
105
|
+
MEX: Volkswagen India
|
|
106
|
+
MHF: Toyota Indonesia
|
|
107
|
+
MHR: Honda Indonesia
|
|
108
|
+
MLC: Suzuki Thailand
|
|
109
|
+
MLH: Honda Thailand
|
|
110
|
+
MMB: Mitsubishi Thailand
|
|
111
|
+
MMC: Mitsubishi Thailand
|
|
112
|
+
MMM: Chevrolet Thailand
|
|
113
|
+
MMT: Mitsubishi Thailand
|
|
114
|
+
MM8: Mazda Thailand
|
|
115
|
+
MNB: Ford Thailand
|
|
116
|
+
MNT: Nissan Thailand
|
|
117
|
+
MPA: Isuzu Thailand
|
|
118
|
+
MP1: Isuzu Thailand
|
|
119
|
+
MRH: Honda Thailand
|
|
120
|
+
MR0: Toyota Thailand
|
|
121
|
+
NLA: Honda Türkiye
|
|
122
|
+
NLE: Mercedes-Benz Türk Truck
|
|
123
|
+
NLH: Hyundai Assan
|
|
124
|
+
NLT: TEMSA
|
|
125
|
+
NMB: Mercedes-Benz Türk Buses
|
|
126
|
+
NMC: BMC
|
|
127
|
+
NM0: Ford Turkey
|
|
128
|
+
NM4: Tofaş Türk
|
|
129
|
+
NMT: Toyota Türkiye
|
|
130
|
+
NNA: Isuzu Turkey
|
|
131
|
+
PE1: Ford Phillipines
|
|
132
|
+
PE3: Mazda Phillipines
|
|
133
|
+
PL1: Proton, Malaysia
|
|
134
|
+
PNA: NAZA, Malaysia (Peugeot)
|
|
135
|
+
RA1: Steyr Trucks International FZE, UAE
|
|
136
|
+
RFB: Kymco, Taiwan
|
|
137
|
+
RFG: Sanyang SYM, Taiwan
|
|
138
|
+
RFL: Adly, Taiwan
|
|
139
|
+
RFT: CPI, Taiwan
|
|
140
|
+
RF3: Aeon Motor, Taiwan
|
|
141
|
+
SAL: Land Rover
|
|
142
|
+
SAJ: Jaguar
|
|
143
|
+
SAR: Rover
|
|
144
|
+
SB1: Toyota UK
|
|
145
|
+
SBM: McLaren
|
|
146
|
+
SCA: Rolls Royce
|
|
147
|
+
SCB: Bentley
|
|
148
|
+
SCC: Lotus Cars
|
|
149
|
+
SCE: DeLorean Motor Cars N. Ireland (UK)
|
|
150
|
+
SCF: Aston
|
|
151
|
+
SDB: Peugeot UK (formerly Talbot)
|
|
152
|
+
SED: General Motors Luton Plant
|
|
153
|
+
SEY: LDV
|
|
154
|
+
SFA: Ford UK
|
|
155
|
+
SFD: Alexander Dennis UK
|
|
156
|
+
SHH: Honda UK
|
|
157
|
+
SHS: Honda UK
|
|
158
|
+
SJN: Nissan UK
|
|
159
|
+
SKF: Vauxhall
|
|
160
|
+
SLP: JCB Research UK
|
|
161
|
+
SMT: Triumph Motorcycles
|
|
162
|
+
SUF: Fiat Auto Poland
|
|
163
|
+
SUL: FSC (Poland)
|
|
164
|
+
SUP: FSO-Daewoo (Poland)
|
|
165
|
+
SUU: Solaris Bus & Coach (Poland)
|
|
166
|
+
TCC: Micro Compact Car AG (smart 1998-1999)
|
|
167
|
+
TDM: QUANTYA Swiss Electric Movement (Switzerland)
|
|
168
|
+
TK9: SOR buses (Czech Republic)
|
|
169
|
+
TMA: Hyundai Motor Manufacturing Czech
|
|
170
|
+
TMB: Škoda (Czech Republic)
|
|
171
|
+
TMK: Karosa (Czech Republic)
|
|
172
|
+
TMP: Škoda trolleybuses (Czech Republic)
|
|
173
|
+
TMT: Tatra (Czech Republic)
|
|
174
|
+
TM9: Škoda trolleybuses (Czech Republic)
|
|
175
|
+
TNE: TAZ
|
|
176
|
+
TN9: Karosa (Czech Republic)
|
|
177
|
+
TRA: Ikarus Bus
|
|
178
|
+
TRU: Audi Hungary
|
|
179
|
+
TSE: Ikarus Egyedi Autobuszgyar, (Hungary)
|
|
180
|
+
TSM: Suzuki Hungary
|
|
181
|
+
TW1: Toyota Caetano Portugal
|
|
182
|
+
TYA: Mitsubishi Trucks Portugal
|
|
183
|
+
TYB: Mitsubishi Trucks Portugal
|
|
184
|
+
UU1: Renault Dacia, (Romania)
|
|
185
|
+
UU3: ARO
|
|
186
|
+
UU6: Daewoo Romania
|
|
187
|
+
U5Y: Kia Motors Slovakia
|
|
188
|
+
U6Y: Kia Motors Slovakia
|
|
189
|
+
VAG: Magna Steyr Puch
|
|
190
|
+
VAN: MAN Austria
|
|
191
|
+
VBK: KTM (Motorcycles)
|
|
192
|
+
VF1: Renault
|
|
193
|
+
VF2: Renault
|
|
194
|
+
VF3: Peugeot
|
|
195
|
+
VF4: Talbot
|
|
196
|
+
VF6: Renault (Trucks & Buses)
|
|
197
|
+
VF7: Citroën
|
|
198
|
+
VF8: Matra
|
|
199
|
+
VF9/795: Bugatti
|
|
200
|
+
VG5: MBK (motorcycles)
|
|
201
|
+
VLU: Scania France
|
|
202
|
+
VN1: SOVAB (France)
|
|
203
|
+
VNE: Irisbus (France)
|
|
204
|
+
VNK: Toyota France
|
|
205
|
+
VNV: Renault-Nissan
|
|
206
|
+
VSA: Mercedes-Benz Spain
|
|
207
|
+
VSE: Suzuki Spain (Santana Motors)
|
|
208
|
+
VSK: Nissan Spain
|
|
209
|
+
VSS: SEAT
|
|
210
|
+
VSX: Opel Spain
|
|
211
|
+
VS6: Ford Spain
|
|
212
|
+
VS7: Citroën Spain
|
|
213
|
+
VS9: Carrocerias Ayats (Spain)
|
|
214
|
+
VTH: Derbi (motorcycles)
|
|
215
|
+
VTL: Yamaha Spain (motorcycles)
|
|
216
|
+
VTT: Suzuki Spain (motorcycles)
|
|
217
|
+
VV9: TAURO Spain
|
|
218
|
+
VWA: Nissan Spain
|
|
219
|
+
VWV: Volkswagen Spain
|
|
220
|
+
VX1: Zastava / Yugo Serbia
|
|
221
|
+
WAG: Neoplan
|
|
222
|
+
WAU: Audi
|
|
223
|
+
WA1: Audi SUV
|
|
224
|
+
WBA: BMW
|
|
225
|
+
WBS: BMW M
|
|
226
|
+
WBY: BMW
|
|
227
|
+
WDA: Daimler
|
|
228
|
+
WDB: Mercedes-Benz
|
|
229
|
+
WDC: DaimlerChrysler
|
|
230
|
+
WDD: Mercedes-Benz
|
|
231
|
+
WDF: Mercedes-Benz (commercial vehicles)
|
|
232
|
+
WEB: Evobus GmbH (Mercedes-Bus)
|
|
233
|
+
WJM: Iveco Magirus
|
|
234
|
+
WF0: Ford Germany
|
|
235
|
+
WKK: Kässbohrer/Setra
|
|
236
|
+
WMA: MAN Germany
|
|
237
|
+
WME: smart
|
|
238
|
+
WMW: MINI
|
|
239
|
+
WMX: Mercedes-AMG
|
|
240
|
+
WP0: Porsche
|
|
241
|
+
WP1: Porsche SUV
|
|
242
|
+
W0L: Opel
|
|
243
|
+
W0V: Opel
|
|
244
|
+
WUA: quattro GmbH
|
|
245
|
+
WVG: Volkswagen MPV/SUV
|
|
246
|
+
WVW: Volkswagen
|
|
247
|
+
WV1: Volkswagen Commercial Vehicles
|
|
248
|
+
WV2: Volkswagen Bus/Van
|
|
249
|
+
WV3: Volkswagen Trucks
|
|
250
|
+
XLB: Volvo (NedCar)
|
|
251
|
+
XLE: Scania Netherlands
|
|
252
|
+
XLR: DAF (trucks)
|
|
253
|
+
XL9/363: Spyker
|
|
254
|
+
XMC: Mitsubishi (NedCar)
|
|
255
|
+
XTA: Lada/AvtoVAZ (Russia)
|
|
256
|
+
XTC: KAMAZ (Russia)
|
|
257
|
+
XTH: GAZ (Russia)
|
|
258
|
+
XTT: UAZ/Sollers (Russia)
|
|
259
|
+
XTY: LiAZ (Russia)
|
|
260
|
+
XUF: General Motors Russia
|
|
261
|
+
XUU: AvtoTor (Russia, General Motors SKD)
|
|
262
|
+
XW8: Volkswagen Group Russia
|
|
263
|
+
XWB: UZ-Daewoo (Uzbekistan)
|
|
264
|
+
XWE: AvtoTor (Russia, Hyundai-Kia SKD)
|
|
265
|
+
X1M: PAZ (Russia)
|
|
266
|
+
X4X: AvtoTor (Russia, BMW SKD)
|
|
267
|
+
X7L: Renault AvtoFramos (Russia)
|
|
268
|
+
X7M: Hyundai TagAZ (Russia)
|
|
269
|
+
YBW: Volkswagen Belgium
|
|
270
|
+
YB1: Volvo Trucks Belgium
|
|
271
|
+
YCM: Mazda Belgium
|
|
272
|
+
YE2: Van Hool (buses)
|
|
273
|
+
YH2: BRP Finland (Lynx snowmobiles)
|
|
274
|
+
YK1: Saab-Valmet Finland
|
|
275
|
+
YS2: Scania AB
|
|
276
|
+
YS3: Saab
|
|
277
|
+
YS4: Scania Bus
|
|
278
|
+
YTN: Saab NEVS
|
|
279
|
+
YT9/007: Koenigsegg
|
|
280
|
+
YT9/034: Carvia
|
|
281
|
+
YU7: Husaberg (motorcycles)
|
|
282
|
+
YV1: Volvo Cars
|
|
283
|
+
YV4: Volvo Cars
|
|
284
|
+
YV2: Volvo Trucks
|
|
285
|
+
YV3: Volvo Buses
|
|
286
|
+
Y3M: MAZ (Belarus)
|
|
287
|
+
Y6D: Zaporozhets/AvtoZAZ (Ukraine)
|
|
288
|
+
ZAA: Autobianchi
|
|
289
|
+
ZAM: Maserati
|
|
290
|
+
ZAP: Piaggio/Vespa/Gilera
|
|
291
|
+
ZAR: Alfa Romeo
|
|
292
|
+
ZBN: Benelli
|
|
293
|
+
ZCG: Cagiva SpA / MV Agusta
|
|
294
|
+
ZCF: Iveco
|
|
295
|
+
ZDM: Ducati Motor Holdings SpA
|
|
296
|
+
ZDF: Ferrari Dino
|
|
297
|
+
ZD0: Yamaha Italy
|
|
298
|
+
ZD3: Beta Motor
|
|
299
|
+
ZD4: Aprilia
|
|
300
|
+
ZFA: Fiat
|
|
301
|
+
ZFC: Fiat V.I.
|
|
302
|
+
ZFF: Ferrari
|
|
303
|
+
ZGU: Moto Guzzi
|
|
304
|
+
ZHW: Lamborghini
|
|
305
|
+
ZJM: Malaguti
|
|
306
|
+
ZJN: Innocenti
|
|
307
|
+
ZKH: Husqvarna Motorcycles Italy
|
|
308
|
+
ZLA: Lancia
|
|
309
|
+
ZOM: OM
|
|
310
|
+
Z8M: Marussia (Russia)
|
|
311
|
+
1B3: Dodge
|
|
312
|
+
1C3: Chrysler
|
|
313
|
+
1C6: Chrysler
|
|
314
|
+
1D3: Dodge
|
|
315
|
+
1FA: Ford Motor Company
|
|
316
|
+
1FB: Ford Motor Company
|
|
317
|
+
1FC: Ford Motor Company
|
|
318
|
+
1FD: Ford Motor Company
|
|
319
|
+
1FM: Ford Motor Company
|
|
320
|
+
1FT: Ford Motor Company
|
|
321
|
+
1FU: Freightliner
|
|
322
|
+
1FV: Freightliner
|
|
323
|
+
1F9: FWD Corp.
|
|
324
|
+
1G: General Motors USA
|
|
325
|
+
1GC: Chevrolet Truck USA
|
|
326
|
+
1GT: GMC Truck USA
|
|
327
|
+
1G1: Chevrolet USA
|
|
328
|
+
1G2: Pontiac USA
|
|
329
|
+
1G3: Oldsmobile USA
|
|
330
|
+
1G4: Buick USA
|
|
331
|
+
1G6: Cadillac USA
|
|
332
|
+
1G8: Saturn USA
|
|
333
|
+
1GM: Pontiac USA
|
|
334
|
+
1GY: Cadillac USA
|
|
335
|
+
1H: Honda USA
|
|
336
|
+
1HD: Harley-Davidson
|
|
337
|
+
1J4: Jeep
|
|
338
|
+
1L: Lincoln USA
|
|
339
|
+
1ME: Mercury USA
|
|
340
|
+
1M1: Mack Truck USA
|
|
341
|
+
1M2: Mack Truck USA
|
|
342
|
+
1M3: Mack Truck USA
|
|
343
|
+
1M4: Mack Truck USA
|
|
344
|
+
1M9: Mynatt Truck & Equipment
|
|
345
|
+
1N: Nissan USA
|
|
346
|
+
1NX: NUMMI USA
|
|
347
|
+
1P3: Plymouth USA
|
|
348
|
+
1R9: Roadrunner Hay Squeeze USA
|
|
349
|
+
1VW: Volkswagen USA
|
|
350
|
+
1XK: Kenworth USA
|
|
351
|
+
1XP: Peterbilt USA
|
|
352
|
+
1YV: Mazda USA (AutoAlliance International)
|
|
353
|
+
1ZV: Ford (AutoAlliance International)
|
|
354
|
+
2A4: Chrysler Canada
|
|
355
|
+
2BP: Bombardier Recreational Products
|
|
356
|
+
2B3: Dodge Canada
|
|
357
|
+
2B7: Dodge Canada
|
|
358
|
+
2C3: Chrysler Canada
|
|
359
|
+
2CN: CAMI
|
|
360
|
+
2D3: Dodge Canada
|
|
361
|
+
2FA: Ford Motor Company Canada
|
|
362
|
+
2FB: Ford Motor Company Canada
|
|
363
|
+
2FC: Ford Motor Company Canada
|
|
364
|
+
2FM: Ford Motor Company Canada
|
|
365
|
+
2FT: Ford Motor Company Canada
|
|
366
|
+
2FU: Freightliner
|
|
367
|
+
2FV: Freightliner
|
|
368
|
+
2FZ: Sterling
|
|
369
|
+
2G: General Motors Canada
|
|
370
|
+
2G1: Chevrolet Canada
|
|
371
|
+
2G2: Pontiac Canada
|
|
372
|
+
2G3: Oldsmobile Canada
|
|
373
|
+
2G4: Buick Canada
|
|
374
|
+
2HG: Honda Canada
|
|
375
|
+
2HK: Honda Canada
|
|
376
|
+
2HJ: Honda Canada
|
|
377
|
+
2HM: Hyundai Canada
|
|
378
|
+
2M: Mercury
|
|
379
|
+
2NV: Nova Bus Canada
|
|
380
|
+
2P3: Plymouth Canada
|
|
381
|
+
2T: Toyota Canada
|
|
382
|
+
2V4: Volkswagen Canada
|
|
383
|
+
2V8: Volkswagen Canada
|
|
384
|
+
2WK: Western Star
|
|
385
|
+
2WL: Western Star
|
|
386
|
+
2WM: Western Star
|
|
387
|
+
3C4: Chrysler Mexico
|
|
388
|
+
3D3: Dodge Mexico
|
|
389
|
+
3FA: Ford Motor Company Mexico
|
|
390
|
+
3FE: Ford Motor Company Mexico
|
|
391
|
+
3G: General Motors Mexico
|
|
392
|
+
3H: Honda Mexico
|
|
393
|
+
3JB: BRP Mexico (all-terrain vehicles)
|
|
394
|
+
3MD: Mazda Mexico
|
|
395
|
+
3MZ: Mazda Mexico
|
|
396
|
+
3N: Nissan Mexico
|
|
397
|
+
3P3: Plymouth Mexico
|
|
398
|
+
3VW: Volkswagen Mexico
|
|
399
|
+
4F: Mazda USA
|
|
400
|
+
4JG: Mercedes-Benz USA
|
|
401
|
+
4M: Mercury
|
|
402
|
+
4RK: Nova Bus USA
|
|
403
|
+
4S: Subaru-Isuzu Automotive
|
|
404
|
+
4T: Toyota
|
|
405
|
+
4T9: Lumen Motors
|
|
406
|
+
4UF: Arctic Cat Inc.
|
|
407
|
+
4US: BMW USA
|
|
408
|
+
4UZ: Frt-Thomas Bus
|
|
409
|
+
4V1: Volvo
|
|
410
|
+
4V2: Volvo
|
|
411
|
+
4V3: Volvo
|
|
412
|
+
4V4: Volvo
|
|
413
|
+
4V5: Volvo
|
|
414
|
+
4V6: Volvo
|
|
415
|
+
4VL: Volvo
|
|
416
|
+
4VM: Volvo
|
|
417
|
+
4VZ: Volvo
|
|
418
|
+
538: Zero Motorcycles (USA)
|
|
419
|
+
5F: Honda USA-Alabama
|
|
420
|
+
5L: Lincoln
|
|
421
|
+
5N1: Nissan USA
|
|
422
|
+
5NP: Hyundai USA
|
|
423
|
+
5T: Toyota USA - trucks
|
|
424
|
+
5YJ: Tesla Motors
|
|
425
|
+
6AB: MAN Australia
|
|
426
|
+
6F4: Nissan Motor Company Australia
|
|
427
|
+
6F5: Kenworth Australia
|
|
428
|
+
6FP: Ford Motor Company Australia
|
|
429
|
+
6G1: General Motors-Holden (post Nov 2002)
|
|
430
|
+
6G2: Pontiac Australia (GTO & G8)
|
|
431
|
+
6H8: General Motors-Holden (pre Nov 2002)
|
|
432
|
+
6MM: Mitsubishi Motors Australia
|
|
433
|
+
6T1: Toyota Motor Corporation Australia
|
|
434
|
+
6U9: Privately Imported car in Australia
|
|
435
|
+
8AD: Peugeot Argentina
|
|
436
|
+
8AF: Ford Motor Company Argentina
|
|
437
|
+
8AG: Chevrolet Argentina
|
|
438
|
+
8AJ: Toyota Argentina
|
|
439
|
+
8AK: Suzuki Argentina
|
|
440
|
+
8AP: Fiat Argentina
|
|
441
|
+
8AW: Volkswagen Argentina
|
|
442
|
+
8A1: Renault Argentina
|
|
443
|
+
8GD: Peugeot Chile
|
|
444
|
+
8GG: Chevrolet Chile
|
|
445
|
+
935: Citroën Brazil
|
|
446
|
+
936: Peugeot Brazil
|
|
447
|
+
93H: Honda Brazil
|
|
448
|
+
93R: Toyota Brazil
|
|
449
|
+
93U: Audi Brazil
|
|
450
|
+
93V: Audi Brazil
|
|
451
|
+
93X: Mitsubishi Motors Brazil
|
|
452
|
+
93Y: Renault Brazil
|
|
453
|
+
94D: Nissan Brazil
|
|
454
|
+
9BD: Fiat Brazil
|
|
455
|
+
9BF: Ford Motor Company Brazil
|
|
456
|
+
9BG: Chevrolet Brazil
|
|
457
|
+
9BM: Mercedes-Benz Brazil
|
|
458
|
+
9BR: Toyota Brazil
|
|
459
|
+
9BS: Scania Brazil
|
|
460
|
+
9BW: Volkswagen Brazil
|
|
461
|
+
9FB: Renault Colombia
|
data/lib/vindetta/generator.rb
CHANGED
data/lib/vindetta/validator.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "active_model"
|
|
2
2
|
|
|
3
3
|
module Vindetta
|
|
4
4
|
class Validator < ActiveModel::Validator
|
|
@@ -9,9 +9,9 @@ module Vindetta
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def validate(record)
|
|
12
|
-
if record.value.length != LENGTH
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
record.errors.add(:value, I18n.t("invalid_length")) if record.value.length != LENGTH
|
|
13
|
+
|
|
14
|
+
# TODO: Check format
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
end
|
data/lib/vindetta/version.rb
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Vindetta
|
|
2
|
+
class Vin
|
|
3
|
+
class Vds
|
|
4
|
+
attr_reader :value
|
|
5
|
+
|
|
6
|
+
def initialize(vin)
|
|
7
|
+
@vin = vin
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def value
|
|
11
|
+
@vin[3..7].join("")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
alias eql? ==
|
|
15
|
+
|
|
16
|
+
def ==(other)
|
|
17
|
+
self.class == other.class && value == other.value
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
module Vindetta
|
|
2
|
+
class Vin
|
|
3
|
+
class Vis
|
|
4
|
+
DATA_PATH = File.expand_path("../../data/vis.yaml", __FILE__)
|
|
5
|
+
|
|
6
|
+
attr_reader :value
|
|
7
|
+
|
|
8
|
+
def initialize(vin)
|
|
9
|
+
@vin = vin
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
alias eql? ==
|
|
13
|
+
|
|
14
|
+
def ==(other)
|
|
15
|
+
self.class == other.class && value == other.value
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def seventh
|
|
19
|
+
@vin[6]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def value
|
|
23
|
+
@vin[9..16].join("")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def year
|
|
27
|
+
@year ||= begin
|
|
28
|
+
years = self.class.data.dig("year", value[0])
|
|
29
|
+
|
|
30
|
+
# TODO: Replace this w/ a constant of alpha characters and check against that
|
|
31
|
+
begin
|
|
32
|
+
Integer(seventh)
|
|
33
|
+
years[0]
|
|
34
|
+
rescue ArgumentError
|
|
35
|
+
years[1]
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
private
|
|
41
|
+
|
|
42
|
+
def self.data
|
|
43
|
+
@data ||= YAML.load_file(DATA_PATH).stringify_keys
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Vindetta
|
|
2
|
+
class Vin
|
|
3
|
+
class Wmi
|
|
4
|
+
DATA_PATH = File.expand_path("../../data/wmi.yaml", __FILE__)
|
|
5
|
+
|
|
6
|
+
def initialize(vin)
|
|
7
|
+
@vin = vin
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def name
|
|
11
|
+
@name ||= self.class.data[value]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
alias eql? ==
|
|
15
|
+
|
|
16
|
+
def value
|
|
17
|
+
@vin[0..2].join("")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def ==(other)
|
|
21
|
+
self.class == other.class && value == other.value
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.data
|
|
25
|
+
@data ||= YAML.load_file(DATA_PATH)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
data/lib/vindetta/vin.rb
CHANGED
|
@@ -1,15 +1,72 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "active_support"
|
|
2
|
+
require "active_model"
|
|
3
3
|
|
|
4
4
|
module Vindetta
|
|
5
5
|
class Vin
|
|
6
|
-
attr_reader :value
|
|
7
6
|
include ActiveModel::Validations
|
|
7
|
+
include Enumerable
|
|
8
|
+
|
|
9
|
+
def each(&block)
|
|
10
|
+
@value.chars(&block)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def [](index)
|
|
14
|
+
each[index]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
attr_reader :value
|
|
8
18
|
|
|
9
19
|
validates_with Validator
|
|
10
20
|
|
|
11
21
|
def initialize(value)
|
|
12
22
|
@value = value
|
|
13
23
|
end
|
|
24
|
+
|
|
25
|
+
alias eql? ==
|
|
26
|
+
|
|
27
|
+
def ==(other)
|
|
28
|
+
self.class == other.class && value == other.value
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def check_digit
|
|
32
|
+
value[8]
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def year
|
|
36
|
+
vis.year
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
##
|
|
40
|
+
# World Manufacturer Identity
|
|
41
|
+
#
|
|
42
|
+
def wmi
|
|
43
|
+
@wmi ||= Wmi.new(self)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# #
|
|
47
|
+
# Vehicle Descriptor Section
|
|
48
|
+
#
|
|
49
|
+
def vds
|
|
50
|
+
@vds ||= Vds.new(self)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
##
|
|
54
|
+
# Vehicle Identifier Section
|
|
55
|
+
#
|
|
56
|
+
def vis
|
|
57
|
+
@vis ||= Vis.new(self)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def model_year
|
|
61
|
+
value[9]
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def manufacturing_plant
|
|
65
|
+
value[10]
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def serial_number
|
|
69
|
+
value[11..16]
|
|
70
|
+
end
|
|
14
71
|
end
|
|
15
72
|
end
|
data/lib/vindetta.rb
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
7
|
-
require
|
|
1
|
+
require "vindetta/cli"
|
|
2
|
+
require "vindetta/errors"
|
|
3
|
+
require "vindetta/generator"
|
|
4
|
+
require "vindetta/transliterator"
|
|
5
|
+
require "vindetta/validator"
|
|
6
|
+
require "vindetta/decoder"
|
|
7
|
+
require "vindetta/version"
|
|
8
|
+
require "vindetta/vin"
|
|
9
|
+
require "vindetta/vin/wmi"
|
|
10
|
+
require "vindetta/vin/vds"
|
|
11
|
+
require "vindetta/vin/vis"
|
|
8
12
|
|
|
9
13
|
module Vindetta
|
|
10
14
|
def self.generate(options = {})
|
data/vindetta.gemspec
CHANGED
|
@@ -1,36 +1,38 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
2
|
|
|
3
|
-
lib = File.expand_path(
|
|
3
|
+
lib = File.expand_path("../lib", __FILE__)
|
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
|
-
require
|
|
5
|
+
require "vindetta/version"
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |spec|
|
|
8
|
-
spec.name =
|
|
8
|
+
spec.name = "vindetta"
|
|
9
9
|
spec.version = Vindetta::VERSION
|
|
10
|
-
spec.authors = [
|
|
11
|
-
spec.email = [
|
|
10
|
+
spec.authors = ["Kyle Decot"]
|
|
11
|
+
spec.email = ["kyle@joinroot.com"]
|
|
12
12
|
|
|
13
|
-
spec.summary =
|
|
14
|
-
spec.description =
|
|
15
|
-
spec.homepage =
|
|
16
|
-
spec.license =
|
|
13
|
+
spec.summary = "Ruby gem for generating VINs"
|
|
14
|
+
spec.description = "Ruby gem for generating VINs"
|
|
15
|
+
spec.homepage = "https://github.com/kyledecot/vindetta"
|
|
16
|
+
spec.license = "MIT"
|
|
17
17
|
|
|
18
18
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
19
19
|
f.match(%r{^(test|spec|features)/})
|
|
20
20
|
end
|
|
21
|
-
spec.bindir =
|
|
21
|
+
spec.bindir = "exe"
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
23
|
-
spec.require_paths = [
|
|
23
|
+
spec.require_paths = ["lib"]
|
|
24
24
|
|
|
25
|
-
spec.add_dependency
|
|
26
|
-
spec.add_dependency
|
|
27
|
-
spec.add_dependency
|
|
25
|
+
spec.add_dependency "activemodel", "~> 5.1"
|
|
26
|
+
spec.add_dependency "activesupport", "~> 5.1"
|
|
27
|
+
spec.add_dependency "gli", "~> 2.16"
|
|
28
|
+
spec.add_dependency "i18n", "~> 0.8.6"
|
|
28
29
|
|
|
29
|
-
spec.add_development_dependency
|
|
30
|
-
spec.add_development_dependency
|
|
31
|
-
spec.add_development_dependency
|
|
32
|
-
spec.add_development_dependency
|
|
33
|
-
spec.add_development_dependency
|
|
34
|
-
spec.add_development_dependency
|
|
35
|
-
spec.add_development_dependency
|
|
30
|
+
spec.add_development_dependency "bundler", "~> 1.14"
|
|
31
|
+
spec.add_development_dependency "factory_girl", "~> 4.8.0"
|
|
32
|
+
spec.add_development_dependency "guard-rspec", "~> 4.7.3"
|
|
33
|
+
spec.add_development_dependency "pry", "~> 0.10"
|
|
34
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
|
35
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
|
36
|
+
spec.add_development_dependency "rubocop", "~> 0.49"
|
|
37
|
+
spec.add_development_dependency "webmock", "~> 3.0.1"
|
|
36
38
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vindetta
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kyle Decot
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-10-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activemodel
|
|
@@ -52,6 +52,20 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '2.16'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: i18n
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 0.8.6
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 0.8.6
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: bundler
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -81,19 +95,19 @@ dependencies:
|
|
|
81
95
|
- !ruby/object:Gem::Version
|
|
82
96
|
version: 4.8.0
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: guard
|
|
98
|
+
name: guard-rspec
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
86
100
|
requirements:
|
|
87
101
|
- - "~>"
|
|
88
102
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
103
|
+
version: 4.7.3
|
|
90
104
|
type: :development
|
|
91
105
|
prerelease: false
|
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
107
|
requirements:
|
|
94
108
|
- - "~>"
|
|
95
109
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
110
|
+
version: 4.7.3
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
112
|
name: pry
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -150,6 +164,20 @@ dependencies:
|
|
|
150
164
|
- - "~>"
|
|
151
165
|
- !ruby/object:Gem::Version
|
|
152
166
|
version: '0.49'
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: webmock
|
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - "~>"
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: 3.0.1
|
|
174
|
+
type: :development
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - "~>"
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: 3.0.1
|
|
153
181
|
description: Ruby gem for generating VINs
|
|
154
182
|
email:
|
|
155
183
|
- kyle@joinroot.com
|
|
@@ -172,12 +200,19 @@ files:
|
|
|
172
200
|
- exe/vindetta
|
|
173
201
|
- lib/vindetta.rb
|
|
174
202
|
- lib/vindetta/cli.rb
|
|
203
|
+
- lib/vindetta/data/vis.yaml
|
|
204
|
+
- lib/vindetta/data/wmi.yaml
|
|
205
|
+
- lib/vindetta/decoder.rb
|
|
175
206
|
- lib/vindetta/errors.rb
|
|
176
207
|
- lib/vindetta/generator.rb
|
|
208
|
+
- lib/vindetta/locale/en.yml
|
|
177
209
|
- lib/vindetta/transliterator.rb
|
|
178
210
|
- lib/vindetta/validator.rb
|
|
179
211
|
- lib/vindetta/version.rb
|
|
180
212
|
- lib/vindetta/vin.rb
|
|
213
|
+
- lib/vindetta/vin/vds.rb
|
|
214
|
+
- lib/vindetta/vin/vis.rb
|
|
215
|
+
- lib/vindetta/vin/wmi.rb
|
|
181
216
|
- vindetta.gemspec
|
|
182
217
|
homepage: https://github.com/kyledecot/vindetta
|
|
183
218
|
licenses:
|