A ruby library for retrieving and caching Vehicle Identification Number (VIN) lookups.
Bundler
gem vin_exploder
Rubygems
gem install vin_exploder
Using the vin exploder will require a decoding service adapter. Thankfully one is available in the Vinquery gem
require 'vin_exploder' # require the Vinquery.com adapter require 'vinquery/vin_exploder/adapter' # tell vin_exploder to use the Vinquery.com adapter and pass it's required config VinExploder.config.adapter :vinquery, {:url => 'VINQUERY_URL', :access_code => 'ACCESS_CODE', :report_type => 'REPORT_TYPE'} # request the decoded VIN data vin_explosion = VinExploder.get('1FTWX31R19EB18840') vin_explosion.valid? # true vin_explosion.make # Ford
Create an initializer for the config
require 'vin_exploder' require 'vinquery/vin_exploder/adapter' VinExploder.config.adapter :vinquery, {:url => 'VINQUERY_URL', :access_code => 'ACCESS_CODE', :report_type => 'REPORT_TYPE'}
To save on the cost of looking up a VIN multiple times setup a cache
require 'vin_exploder' # require the Sequel based cache store require 'vin_exploder/cache/sequel_cache_store' # require the Vinquery.com adapter require 'vinquery/vin_exploder/adapter' # tell vin_exploder to use the Sequel based cache store adapter and pass in the connection config VinExploder.config.cache_store :sequel_cache_store, "mysql://localhost:3896/vin_cache" # tell vin_exploder to use the Vinquery.com adapter and pass it's required config VinExploder.config.adapter :vinquery, {:url => 'VINQUERY_URL', :access_code => 'ACCESS_CODE', :report_type => 'REPORT_TYPE'} # request the decoded VIN data vin_explosion = VinExploder.get('1FTWX31R19EB18840') vin_explosion.valid? #=> true vin_explosion.make #=> Ford # decoded VIN data is retrieved from cache vin_explosion2 = VinExploder.get('1FTWX31R19EB18840') vin_explosion2.make #=> Ford