Module: Vindsl::WMI

Defined in:
lib/vindsl/wmi.rb

Overview

World Manufacturer Number

Constant Summary collapse

COUNTRIES =
{
      'A' => 'South Africa',
      'CL9' => 'Tunisia',
      'J' => 'Japan',
      'K' => 'South Korea',
      'SA' => 'United Kingdom',
      'SCC' => 'United Kingdom',
      'SCE' => 'Ireland',
      'TM' => 'Czech Republic',
      'TR' => 'Hungary',
      'U' => 'Romania',
      'VA' => 'Austria',
      'VF' => 'France',
      'VS' => 'Spain',
      'VV' => 'Spain',
      'W' => 'Germany',
      'YK' => 'Finland',
      'YS3' => 'Sweden',
      'YTN' => 'Sweden',
      'YV1' => 'Sweden',
      'Z' => 'Italy',
      '1' => 'United States',
      '2' => 'Canada',
      '3' => 'Mexico',
      '4' => 'United States',
      '5' => 'United States',
      '6' => 'Australia',
      '8' => 'Argentina',
      '9' => 'Brazil',
}
MANUFACTURERS =
{
      '10T' =>    'Oshkosh',
      '11V' =>    'Ottawa',
      '137' =>    'AM General, Hummer',
      '15G' =>    'Gillig',
      '17N' =>    'John Deere',
      '18X' =>    'WRV',
      '19U' =>    'Acura',
      '1A4' =>    'Chrysler',
      '1A8' =>    'Chrysler',
      '1AC' =>    'AMC',
      '1AM' =>    'AMC',
      '1B3' =>    'Dodge',
      '1B4' =>    'Dodge',
      '1B6' =>    'Dodge',
      '1B7' =>    'Dodge',
      '1B7' =>    'Dodge',
      '1BA' =>    'Blue Bird',
      '1BB' =>    'Blue Bird',
      '1BD' =>    'Blue Bird',
      '1C3' =>    'Chrysler',
      '1C4' =>    'Chrysler',
      '1C8' =>    'Chrysler',
      '1C9' =>    'Chance',
      '1CY' =>    'Crane Carrier',
      '1D3' =>    'Dodge',
      '1D4' =>    'Dodge',
      '1D5' =>    'Dodge',
      '1D7' =>    'Dodge',
      '1D8' =>    'Dodge',
      '1EC' =>    'Fleetwood',
      '1F1' =>    'Ford',
      '1F6' =>    'Ford',
      '1FA' =>    'Ford',
      '1FB' =>    'Ford',
      '1FC' =>    'Ford',
      '1FD' =>    'Ford',
      '1FE' =>    'Ford',
      '1FM' =>    'Ford',
      '1FT' =>    'Ford',
      '1FU' =>    'Freightliner',
      '1FV' =>    'Freightliner',
      '1G1' =>    'Chevrolet',
      '1G2' =>    'Pontiac',
      '1G3' =>    'Oldsmobile',
      '1G4' =>    'Buick',
      '1G5' =>    'GMC, Pontiac',
      '1G6' =>    'Cadillac',
      '1G8' =>    'Chevrolet, Saturn',
      '1GA' =>    'Chevrolet',
      '1GB' =>    'Chevrolet',
      '1GC' =>    'Chevrolet',
      '1GD' =>    'GMC',
      '1GE' =>    'Cadillac',
      '1GF' =>    'Flexible',
      '1GG' =>    'Isuzu',
      '1GH' =>    'GMC, Oldsmobile',
      '1GJ' =>    'GMC',
      '1GK' =>    'GMC',
      '1GM' =>    'Pontiac',
      '1GN' =>    'Chevrolet',
      '1GT' =>    'GMC',
      '1GY' =>    'Cadillac',
      '1HG' =>    'Honda',
      '1HS' =>    'International',
      '1HT' =>    'International',
      '1HV' =>    'International',
      '1J4' =>    'Jeep',
      '1J7' =>    'Jeep',
      '1J8' =>    'Jeep',
      '1JC' =>    'AMC, Jeep',
      '1JD' =>    'AMC',
      '1JT' =>    'AMC, Jeep',
      '1L1' =>    'Lincoln',
      '1LN' =>    'Lincoln',
      '1M1' =>    'Mack',
      '1M2' =>    'Mack',
      '1M3' =>    'Mack',
      '1M8' =>    'MCI',
      '1ME' =>    'Mercury',
      '1MR' =>    'Lincoln',
      '1N4' =>    'Nissan',
      '1N6' =>    'Datsun, Nissan',
      '1N9' =>    'Neoplan',
      '1NK' =>    'Kenworth',
      '1NP' =>    'Peterbilt',
      '1NX' =>    'Toyota',
      '1P3' =>    'Plymouth',
      '1P4' =>    'Plymouth',
      '1P7' =>    'Plymouth',
      '1P9' =>    'Panoz',
      '1RF' =>    'Roadmaster',
      '1S9' =>    'Saleen',
      '177' =>    'Thomas',
      '1T8' =>    'Thomas',
      '1TU' =>    'TMC',
      '1V1' =>    'Volkswagen',
      '1VW' =>    'Volkswagen',
      '1WA' =>    'Autostar',
      '1WB' =>    'Autostar',
      '1WU' =>    'White Volvo',
      '1WV' =>    'Winnebago',
      '1XK' =>    'Kenworth',
      '1XM' =>    'AMC',
      '1XP' =>    'Peterbilt',
      '1Y1' =>    'Chevrolet, Geo',
      '1YV' =>    'Mazda',
      '1Z3' =>    'Mitsubishi',
      '1Z5' =>    'Mitsubishi',
      '1Z7' =>    'Mitsubishi',
      '1ZV' =>    'Ford',
      '1ZW' =>    'Mercury',
      '2A3' =>    'Chrysler',
      '2A4' =>    'Chrysler',
      '2A8' =>    'Chrysler',
      '2B1' =>    'Orion',
      '2B3' =>    'Dodge',
      '2B4' =>    'Dodge',
      '2B5' =>    'Dodge',
      '2B6' =>    'Dodge',
      '2B7' =>    'Dodge',
      '2B8' =>    'Dodge',
      '2BC' =>    'AMC, Jeep',
      '2C1' =>    'Chevrolet, Geo',
      '2C3' =>    'Chrysler',
      '2C4' =>    'Chrysler',
      '2C7' =>    'Pontiac',
      '2C8' =>    'Chrysler',
      '2CC' =>    'AMC, Eagle',
      '2CK' =>    'Geo, Pontiac',
      '2CM' =>    'AMC',
      '2CN' =>    'Chevrolet, Geo',
      '2D4' =>    'Dodge',
      '2D6' =>    'Dodge',
      '2D7' =>    'Dodge',
      '2D8' =>    'Dodge',
      '2E3' =>    'Eagle',
      '2FA' =>    'Ford',
      '2FD' =>    'Ford',
      '2FM' =>    'Ford',
      '2FT' =>    'Ford',
      '2FU' =>    'Freightliner',
      '2FV' =>    'Freightliner',
      '2FW' =>    'Sterling',
      '2FZ' =>    'Sterling',
      '2G0' =>    'GMC',
      '2G1' =>    'Chevrolet',
      '2G2' =>    'Pontiac',
      '2G3' =>    'Oldsmobile',
      '2G4' =>    'BuickX',
      '2G5' =>    'GMC',
      '2G7' =>    'Pontiac',
      '2G8' =>    'Chevrolet',
      '2GA' =>    'Chevrolet',
      '2GB' =>    'Chevrolet',
      '2GD' =>    'GMC',
      '2GJ' =>    'GMC',
      '2GK' =>    'GMC',
      '2GN' =>    'Chevrolet',
      '2GT' =>    'GMC',
      '2HG' =>    'Honda',
      '2HH' =>    'Acura',
      '2HJ' =>    'Honda',
      '2HK' =>    'Honda',
      '2HM' =>    'Hyundai',
      '2HN' =>    'Acura',
      '2HS' =>    'International',
      '2HT' =>    'International',
      '2J4' =>    'Jeep',
      '2LM' =>    'Lincoln',
      '2M2' =>    'Mack',
      '2ME' =>    'Mercury',
      '2MH' =>    'Mercury',
      '2MR' =>    'Mercury',
      '2NK' =>    'Kenworth',
      '2NP' =>    'Peterbilt',
      '2P3' =>    'Plymouth',
      '2P4' =>    'Plymouth',
      '2P5' =>    'Plymouth',
      '2P9' =>    'Prevost',
      '2PC' =>    'Prevost',
      '2S2' =>    'Suzuki',
      '2S3' =>    'Suzuki',
      '2T1' =>    'Toyota',
      '2T2' =>    'Lexus',
      '2WK' =>    'Western Star Trucks',
      '2WL' =>    'Western Star Trucks',
      '2XK' =>    'Kenworth',
      '2XM' =>    'Eagle',
      '2XP' =>    'Peterbilt',
      '3A4' =>    'Chrysler',
      '3A8' =>    'Chrysler',
      '3AB' =>    'Dina',
      '3AL' =>    'Freightliner',
      '3B3' =>    'Dodge',
      '3B4' =>    'Dodge',
      '3B6' =>    'Dodge',
      '3B7' =>    'Dodge',
      '3BK' =>    'Kenworth',
      '3BP' =>    'Peterbilt',
      '3C3' =>    'Chrysler',
      '3C4' =>    'Chrysler',
      '3C8' =>    'Chrysler',
      '3CA' =>    'Chrysler',
      '3D3' =>    'Dodge',
      '3D5' =>    'Dodge',
      '3D6' =>    'Dodge',
      '3D7' =>    'Dodge',
      '3FA' =>    'Ford',
      '3FC' =>    'Ford',
      '3FD' =>    'Ford',
      '3FE' =>    'Ford, Freightliner',
      '3FR' =>    'Ford',
      '3FT' =>    'Ford',
      '3G1' =>    'Chevrolet',
      '3G2' =>    'Pontiac',
      '3G4' =>    'Buick',
      '3G5' =>    'Buick',
      '3G7' =>    'Pontiac',
      '3GB' =>    'Chevrolet',
      '3GC' =>    'Chevrolet',
      '3GD' =>    'GMC',
      '3GE' =>    'Chevrolet',
      '3GK' =>    'GMC',
      '3GN' =>    'Chevrolet',
      '3GT' =>    'GMC',
      '3GY' =>    'Cadillac',
      '3HA' =>    'International',
      '3HG' =>    'Honda',
      '3HM' =>    'Honda',
      '3HS' =>    'International',
      '3HT' =>    'International',
      '3LN' =>    'Lincoln',
      '3MA' =>    'Mercury',
      '3ME' =>    'Mercury',
      '3N1' =>    'Nissan',
      '3NK' =>    'Kenworth',
      '3NM' =>    'Peterbilt',
      '3P3' =>    'Plymouth',
      '3TM' =>    'Toyota',
      '3VW' =>    'Volkswagen',
      '3WK' =>    'Kenworth',
      '45V' =>    'Utilimaster',
      '46G' =>    'Gillig',
      '49H' =>    'Sterling',
      '4A3' =>    'Mitsubishi',
      '4A4' =>    'Mitsubishi',
      '4B3' =>    'Dodge',
      '4C3' =>    'Chrysler',
      '4CD' =>    'Oshkosh',
      '4DR' =>    'Genesis, International',
      '4E3' =>    'Eagle',
      '4F2' =>    'Mazda',
      '4F4' =>    'Mazda',
      '4G1' =>    'Chevrolet',
      '4G2' =>    'Pontiac',
      '4GD' =>    'GMC',
      '4GT' =>    'Isuzu, WhiteGMC',
      '4JG' =>    'Mercedes-Benz',
      '4KB' =>    'Chevrolet',
      '4KD' =>    'GMC',
      '4KL' =>    'Isuzu',
      '4M2' =>    'Mercury',
      '4N1' =>    'Nissan',
      '4N2' =>    'Nissan',
      '4NU' =>    'Isuzu',
      '4P3' =>    'Plymouth',
      '4S1' =>    'Isuzu',
      '4S2' =>    'Isuzu',
      '4S3' =>    'Subaru',
      '4S4' =>    'Subaru',
      '4S6' =>    'Honda',
      '4S7' =>    'Spartan',
      '4SL' =>    'Magnum',
      '4T1' =>    'Toyota',
      '4T3' =>    'Toyota',
      '4TA' =>    'Toyota',
      '4US' =>    'BMW',
      '4UZ' =>    'Freightliner',
      '4V1' =>    'Volvo, WhiteGMC',
      '4V2' =>    'Volvo, WhiteGMC',
      '4V4' =>    'Volvo, WhiteGMC',
      '4V5' =>    'Volvo, WhiteGMC',
      '4VA' =>    'Volvo',
      '4VG' =>    'Volvo, WhiteGMC',
      '4VH' =>    'Volvo',
      '4VL' =>    'Volvo',
      '4VM' =>    'Volvo',
      '4VZ' =>    'Spartan',
      '5AS' =>    'GEM',
      '5B4' =>    'Workhorse',
      '5CK' =>    'Western Star Trucks',
      '5FN' =>    'Honda',
      '5FY' =>    'New Flyer',
      '5GA' =>    'Buick',
      '5GR' =>    'Hummer',
      '5GT' =>    'Hummer',
      '5GZ' =>    'Saturn',
      '5J6' =>    'Honda',
      '5J8' =>    'Acura',
      '5KJ' =>    'Western Star Trucks',
      '5KK' =>    'Western Star Trucks',
      '5LM' =>    'Lincoln',
      '5LT' =>    'Lincoln',
      '5N1' =>    'Nissan',
      '5N3' =>    'Infiniti',
      '5NM' =>    'Hyundai',
      '5NP' =>    'Hyundai',
      '5PV' =>    'Hino',
      '5S3' =>    'Saab',
      '5SX' =>    'Amercian LeFrance',
      '5T4' =>    'Workhorse',
      '5TB' =>    'Toyota',
      '5TD' =>    'Toyota',
      '5TE' =>    'Toyota',
      '5TF' =>    'Toyota',
      '5UM' =>    'BMW',
      '5UX' =>    'BMW',
      '5Y2' =>    'Pontiac',
      '6G2' =>    'Pontiac',
      '6MM' =>    'Mitsubishi',
      '6MP' =>    'Mercury',
      '9BF' =>    'Ford',
      '9BW' =>    'Volkswagen',
      '9DW' =>    'Volkswagen',
      'J81' =>    'Chevrolet,Geo',
      'J87' =>    'Isuzu',
      'J8B' =>    'Chevrolet',
      'J8D' =>    'GMC',
      'J8Z' =>    'Chevrolet',
      'JA3' =>    'Mitsubishi',
      'JA4' =>    'Mitsubishi',
      'JA7' =>    'Mitsubishi',
      'JAA' =>    'Isuzu',
      'JAB' =>    'Isuzu',
      'JAC' =>    'Isuzu',
      'JAE' =>    'Acura',
      'JAL' =>    'Isuzu',
      'JB3' =>    'Dodge',
      'JB4' =>    'Dodge',
      'JB7' =>    'Dodge',
      'JC2' =>    'Ford',
      'JD1' =>    'Daihatsu',
      'JD2' =>    'Daihatsu',
      'JE3' =>    'Eagle',
      'JF1' =>    'Subaru',
      'JF2' =>    'Subaru',
      'JF3' =>    'Subaru',
      'JF4' =>    'Saab',
      'JG1' =>    'Chevrolet, Geo',
      'JG7' =>    'Pontiac',
      'JGC' =>    'Geo',
      'JH4' =>    'Acura',
      'JHB' =>    'Hino',
      'JHL' =>    'Honda',
      'JHM' =>    'Honda',
      'JJ3' =>    'Chrysler',
      'JL6' =>    'Mitsubishi',
      'JLS' =>    'Sterling',
      'JM1' =>    'Mazda',
      'JM2' =>    'Mazda',
      'JM3' =>    'Mazda',
      'JN1' =>    'Datsun, Nissan',
      'JN3' =>    'Nissan',
      'JN4' =>    'Nissan',
      'JN6' =>    'Datsun, Nissan',
      'JN8' =>    'Nissan',
      'JNA' =>    'Nissan',
      'JNK' =>    'Infiniti',
      'JNR' =>    'Infiniti',
      'JNX' =>    'Infiniti',
      'JP3' =>    'Plymouth',
      'JP4' =>    'Plymouth',
      'JP7' =>    'Plymouth',
      'JR2X' =>   'Isuzu',
      'JS2' =>    'Suzuki',
      'JS3' =>    'Suzuki',
      'JS4' =>    'Suzuki',
      'JT2' =>    'Toyota',
      'JT3' =>    'Toyota',
      'JT4' =>    'Toyota',
      'JT5' =>    'Toyota',
      'JT6' =>    'Lexus',
      'JT8' =>    'Lexus',
      'JTD' =>    'Toyota',
      'JTE' =>    'Toyota',
      'JTH' =>    'Lexus',
      'JTJ' =>    'Lexus',
      'JTK' =>    'Scion',
      'JTL' =>    'Scion',
      'JTM' =>    'Toyota',
      'JTN' =>    'Toyota',
      'JW6' =>    'Mitsubishi',
      'JW7' =>    'Mitsubishi',
      'KL1' =>    'Chevrolet',
      'KL2' =>    'Pontiac',
      'KL5' =>    'Suzuki',
      'KL7' =>    'Asuna',
      'KLA' =>    'Daewoo',
      'KM8' =>    'Hyundai',
      'KMF' =>    'Hyundai',
      'KMH' =>    'Hyundai',
      'KNA' =>    'Kia',
      'KND' =>    'Hyundai, Kia',
      'KNJ' =>    'Ford',
      'KPH' =>    'Mitsubishi',
      'LES' =>    'Isuzu',
      'LM5' =>    'Isuzu',
      'ML3' =>    'Dodge',
      'SA9' =>    'Morgan',
      'SAJ' =>    'Jaguar',
      'SAL' =>    'Land Rover',
      'SAT' =>    'Triumph',
      'SAX' =>    'Sterling',
      'SCA' =>    'Rolls-Royce',
      'SCB' =>    'Bentley',
      'SCC' =>    'Lotus',
      'SCF' =>    'Aston Martin',
      'SDL' =>    'TVR Engineering',
      'SHH' =>    'Honda',
      'SHS' =>    'Honda',
      'SJN' =>    'Nissan UK',
      'TRU' =>    'Audi',
      'VF1' =>    'Renault',
      'VF7' =>    'Citroën',
      'VF3' =>    'Peugeot',
      'VG6' =>    'Mack',
      'VSS' =>    'Seat',
      'W06' =>    'Cadillac',
      'WA1' =>    'Audi',
      'WAU' =>    'Audi',
      'WBA' =>    'BMW',
      'WBS' =>    'BMW',
      'WBX' =>    'BMW',
      'WD0' =>    'Dodge',
      'WD1' =>    'Dodge',
      'WD2' =>    'Dodge',
      'WD5' =>    'Dodge',
      'WD8' =>    'Dodge',
      'WDB' =>    'Maybach, Mercedes-Benz',
      'WDC' =>    'Mercedes-Benz',
      'WDD' =>    'Mercedes-Benz',
      'WDP' =>    'Dodge',
      'WDX' =>    'Dodge',
      'WDY' =>    'Dodge',
      'WF1' =>    'Merkur',
      'WKK' =>    'Fahrzeugwerke',
      'WME' =>    'Mercedes-Benz',
      'WMW' =>    'Mini',
      'WP0' =>    'Porsche',
      'WP1' =>    'Porsche',
      'WUA' =>    'Audi',
      'WV2' =>    'Volkswagen',
      'WV3' =>    'Volkswagen',
      'WVG' =>    'Volkswagen',
      'WVW' =>    'Volkswagen',
      'XTA' =>    'Lada',
      'YB3' =>    'Volvo',
      'YS3' =>    'Saab',
      'YV1' =>    'Volvo',
      'YV2' =>    'Volvo',
      'YV4' =>    'Volvo',
      'YV5' =>    'Volvo',
      'ZA9' =>    'Lamborghini',
      'ZAM' =>    'Maserati',
      'ZAR' =>    'Alfa Romeo',
      'ZC2' =>    'Chrysler',
      'ZFA' =>    'Fiat',
      'ZFF' =>    'Ferrari',
      'ZHWX' =>   'Lamborghini',
}
COUNTRY_MATCHER =
PrefixMatcher.new COUNTRIES
MANUFACTURER_MATCHER =
PrefixMatcher.new MANUFACTURERS

Class Method Summary collapse

Class Method Details

.country_for(vin) ⇒ Object



513
514
515
# File 'lib/vindsl/wmi.rb', line 513

def self.country_for(vin)
      COUNTRY_MATCHER.find vin
end

.country_prefixes_for(country_name) ⇒ Object



517
518
519
# File 'lib/vindsl/wmi.rb', line 517

def self.country_prefixes_for(country_name)
      COUNTRIES.select{ |k, name| name == country_name }.keys
end

.manufacturer_for(vin) ⇒ Object



521
522
523
# File 'lib/vindsl/wmi.rb', line 521

def self.manufacturer_for(vin)
      MANUFACTURER_MATCHER.find vin
end

.manufacturer_prefixes_for(manufacturer_name) ⇒ Object



525
526
527
# File 'lib/vindsl/wmi.rb', line 525

def self.manufacturer_prefixes_for(manufacturer_name)
      MANUFACTURERS.select{ |k, name| name == manufacturer_name }.keys
end