vindsl 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/.rspec +3 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +39 -0
- data/Rakefile +2 -0
- data/lib/vindsl/alphabet.rb +7 -0
- data/lib/vindsl/prefix_matcher.rb +21 -0
- data/lib/vindsl/version.rb +3 -0
- data/lib/vindsl/vin.rb +38 -0
- data/lib/vindsl/wmi.rb +173 -0
- data/lib/vindsl.rb +5 -0
- data/spec/prefix_matcher_spec.rb +36 -0
- data/spec/spec_helper.rb +89 -0
- data/spec/vin_spec.rb +21 -0
- data/vindsl.gemspec +24 -0
- metadata +105 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 168344f7d069efc67d9d3029b23145b5c8c8f387
|
4
|
+
data.tar.gz: 828a35672e933b98c98543a8a8244b47e2e6fe09
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 77d7de356b4b0bdb9257437a0ff820c0214fd6ce89bfdca4751c80d7c7feef44f3e1063719acfe669d3ac5ae8b495241a89d3e1e1161ec12df2bdfc1f5d897fc
|
7
|
+
data.tar.gz: ebc8bbc9d7c47db9663c5502297221d047f2282fbcd46a0243e1d0b51c25712749f0bf5d52d2bcb759f260f75ca24556a2900f2946df3767ee53ff2c737421af
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Bryce Kerley
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# Vindsl
|
2
|
+
|
3
|
+
Vindsl (pronounced like the Fast and Furious star) is a tool for looking up
|
4
|
+
information about cars.
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
Add this line to your application's Gemfile:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem 'vindsl'
|
12
|
+
```
|
13
|
+
|
14
|
+
And then execute:
|
15
|
+
|
16
|
+
$ bundle
|
17
|
+
|
18
|
+
Or install it yourself as:
|
19
|
+
|
20
|
+
$ gem install vindsl
|
21
|
+
|
22
|
+
## Usage
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
v = Vindsl::VIN.new '1ZVBP8AM7C5280000'
|
26
|
+
|
27
|
+
v.country #=> 'United States'
|
28
|
+
v.manufacturer #=> 'Ford'
|
29
|
+
```
|
30
|
+
|
31
|
+
## Contributing
|
32
|
+
|
33
|
+
1. Fork it ( https://github.com/bkerley/vindsl/fork )
|
34
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
35
|
+
3. Write some RSpecs
|
36
|
+
5. Implement your feature
|
37
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
38
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
39
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
module Vindsl
|
2
|
+
class PrefixMatcher
|
3
|
+
def initialize(data)
|
4
|
+
@data = data
|
5
|
+
end
|
6
|
+
|
7
|
+
def find(prefix)
|
8
|
+
@data[first_prefix prefix]
|
9
|
+
end
|
10
|
+
|
11
|
+
def all_prefixes(str)
|
12
|
+
str.length.times.map{|n| str[0..n]}
|
13
|
+
end
|
14
|
+
|
15
|
+
def first_prefix(prefix)
|
16
|
+
all_prefixes(prefix).detect do |pfx|
|
17
|
+
@data[pfx]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/vindsl/vin.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'vindsl/wmi'
|
2
|
+
require 'vindsl/alphabet'
|
3
|
+
|
4
|
+
module Vindsl
|
5
|
+
class VIN
|
6
|
+
def initialize(vin)
|
7
|
+
@vin = vin.upcase
|
8
|
+
end
|
9
|
+
|
10
|
+
def wmi
|
11
|
+
@vin[0..3]
|
12
|
+
end
|
13
|
+
|
14
|
+
def country
|
15
|
+
WMI.country_for @vin
|
16
|
+
end
|
17
|
+
|
18
|
+
def manufacturer
|
19
|
+
WMI.manufacturer_for @vin
|
20
|
+
end
|
21
|
+
|
22
|
+
def model_year
|
23
|
+
year_character = position(10)
|
24
|
+
base = pre_2009? ? 1980 : 2010
|
25
|
+
|
26
|
+
base + Vindsl::Alphabet::ALPHABET_WITH_NUMBERS.index(year_character)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
def position(n)
|
31
|
+
@vin[n-1]
|
32
|
+
end
|
33
|
+
|
34
|
+
def pre_2009?
|
35
|
+
position(7) =~ /\d/
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/vindsl/wmi.rb
ADDED
@@ -0,0 +1,173 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'vindsl/prefix_matcher'
|
3
|
+
|
4
|
+
module Vindsl
|
5
|
+
# World Manufacturer Number
|
6
|
+
module WMI
|
7
|
+
COUNTRIES = {
|
8
|
+
'A' => 'South Africa',
|
9
|
+
'CL9' => 'Tunisia',
|
10
|
+
'J' => 'Japan',
|
11
|
+
'K' => 'South Korea',
|
12
|
+
'SA' => 'United Kingdom',
|
13
|
+
'SCC' => 'United Kingdom',
|
14
|
+
'SCE' => 'Ireland',
|
15
|
+
'TM' => 'Czech Republic',
|
16
|
+
'TR' => 'Hungary',
|
17
|
+
'U' => 'Romania',
|
18
|
+
'VA' => 'Austria',
|
19
|
+
'VF' => 'France',
|
20
|
+
'VS' => 'Spain',
|
21
|
+
'VV' => 'Spain',
|
22
|
+
'W' => 'Germany',
|
23
|
+
'YK' => 'Finland',
|
24
|
+
'YS3' => 'Sweden',
|
25
|
+
'YTN' => 'Sweden',
|
26
|
+
'YV1' => 'Sweden',
|
27
|
+
'Z' => 'Italy',
|
28
|
+
'1' => 'United States',
|
29
|
+
'2' => 'Canada',
|
30
|
+
'3' => 'Mexico',
|
31
|
+
'4' => 'United States',
|
32
|
+
'5' => 'United States',
|
33
|
+
'6' => 'Australia',
|
34
|
+
'8' => 'Argentina',
|
35
|
+
'9' => 'Brazil',
|
36
|
+
}
|
37
|
+
|
38
|
+
MANUFACTURERS = {
|
39
|
+
'AAV' => "Volkswagen",
|
40
|
+
'AFA' => "Ford",
|
41
|
+
'CL9' => "Wallyscar",
|
42
|
+
'JA' => "Isuzu",
|
43
|
+
'JF' => "Fuji Heavy Industries",
|
44
|
+
'JH' => "Honda",
|
45
|
+
'JMB' => "Mitsubishi",
|
46
|
+
'JMZ' => "Mazda",
|
47
|
+
'JN' => "Nissan",
|
48
|
+
'JS' => "Suzuki",
|
49
|
+
'JT' => "Toyota",
|
50
|
+
'KL' => "Daewoo",
|
51
|
+
'KMH' => "Hyundai",
|
52
|
+
'KN' => "Kia",
|
53
|
+
'KPT' => "SsangYong",
|
54
|
+
'SAJ' => "Jaguar",
|
55
|
+
'SAL' => "Land Rover",
|
56
|
+
'SAR' => "Rover",
|
57
|
+
'SCC' => "Lotus Cars",
|
58
|
+
'SCE' => "DeLorean",
|
59
|
+
'TMA' => "Hyundai",
|
60
|
+
'TMB' => "Škoda",
|
61
|
+
'TRU' => "Audi",
|
62
|
+
'UU' => "Dacia",
|
63
|
+
'VA0' => "ÖAF",
|
64
|
+
'VF1' => "Renault",
|
65
|
+
'VF3' => "Peugeot",
|
66
|
+
'VF6' => "Renault Trucks/Volvo",
|
67
|
+
'VF7' => "Citroën",
|
68
|
+
'VFE' => "IvecoBus",
|
69
|
+
'VSS' => "SEAT",
|
70
|
+
'VV9' => "Tauro Sport Auto",
|
71
|
+
'WAU' => "Audi",
|
72
|
+
'WAP' => "Alpina",
|
73
|
+
'WBA' => "BMW",
|
74
|
+
'WBS' => "BMW M",
|
75
|
+
'WDB' => "Mercedes-Benz",
|
76
|
+
'WDC' => "DaimlerChrysler AG/Daimler AG",
|
77
|
+
'WDD' => "DaimlerChrysler AG/Daimler AG",
|
78
|
+
'WMX' => "DaimlerChrysler AG/Daimler AG",
|
79
|
+
'WEB' => "EvoBus",
|
80
|
+
'WF0' => "Ford Germany",
|
81
|
+
'WJM' => "Iveco",
|
82
|
+
'WJR' => "Irmscher",
|
83
|
+
'WKK' => "Kässbohrer",
|
84
|
+
'WMA' => "MAN",
|
85
|
+
'WME' => "Smart",
|
86
|
+
'WMW' => "Mini",
|
87
|
+
'WP0' => "Porsche car",
|
88
|
+
'WP1' => "Porsche SUV",
|
89
|
+
'WUA' => "Quattro",
|
90
|
+
'WVG' => "Volkswagen",
|
91
|
+
'WVW' => "Volkswagen",
|
92
|
+
'WV1' => "Volkswagen Commercial Vehicles",
|
93
|
+
'WV2' => "Volkswagen Commercial Vehicles",
|
94
|
+
'W0L' => "Opel/Vauxhall",
|
95
|
+
'W0SV' => "Opel Special Vehicles",
|
96
|
+
'YK1' => "Saab",
|
97
|
+
'YS3' => "Saab",
|
98
|
+
'YTN' => "Saab NEVS",
|
99
|
+
'YV1' => "Volvo Cars",
|
100
|
+
'ZAM' => "Maserati",
|
101
|
+
'ZAR' => "Alfa Romeo",
|
102
|
+
'ZCF' => "Iveco",
|
103
|
+
'ZFA' => "Fiat Automobiles",
|
104
|
+
'ZFF' => "Ferrari",
|
105
|
+
'ZGA' => "IvecoBus",
|
106
|
+
'ZHW' => "Lamborghini",
|
107
|
+
'ZLA' => "Lancia",
|
108
|
+
'1C' => "Chrysler",
|
109
|
+
'1F' => "Ford",
|
110
|
+
'1G' => "General Motors",
|
111
|
+
'1G3' => "Oldsmobile",
|
112
|
+
'1GC' => "Chevrolet",
|
113
|
+
'1GM' => "Pontiac",
|
114
|
+
'1H' => "Honda",
|
115
|
+
'1J' => "Jeep",
|
116
|
+
'1L' => "Lincoln",
|
117
|
+
'1M' => "Mercury",
|
118
|
+
'1N' => "Nissan",
|
119
|
+
'1VW' => "Volkswagen",
|
120
|
+
'1YV' => "Mazda",
|
121
|
+
'1Z' => 'Ford',
|
122
|
+
'2F' => "Ford",
|
123
|
+
'2G' => "General Motors",
|
124
|
+
'2G1' => "Chevrolet",
|
125
|
+
'2G2' => "Pontiac",
|
126
|
+
'2H' => "Honda",
|
127
|
+
'2HM' => "Hyundai",
|
128
|
+
'2M' => "Mercury",
|
129
|
+
'2T' => "Toyota",
|
130
|
+
'3F' => "Ford",
|
131
|
+
'3G' => "General Motors",
|
132
|
+
'3H' => "Honda",
|
133
|
+
'3N' => "Nissan",
|
134
|
+
'3VW' => "Volkswagen",
|
135
|
+
'4F' => "Mazda",
|
136
|
+
'4J' => "Mercedes-Benz",
|
137
|
+
'4M' => "Mercury",
|
138
|
+
'4S' => "Subaru",
|
139
|
+
'4T' => "Toyota",
|
140
|
+
'4US' => "BMW",
|
141
|
+
'5F' => "Honda",
|
142
|
+
'5L' => "Lincoln",
|
143
|
+
'5T' => "Toyota",
|
144
|
+
'5YJ' => "Tesla",
|
145
|
+
'6F' => "Ford",
|
146
|
+
'6G' => "General Motors",
|
147
|
+
'6G1' => "Chevrolet",
|
148
|
+
'6G2' => "Pontiac",
|
149
|
+
'6H' => "Holden",
|
150
|
+
'6MM' => "Mitsubishi",
|
151
|
+
'6T1' => "Toyota",
|
152
|
+
'8AP' => "Fiat",
|
153
|
+
'8AT' => "Iveco",
|
154
|
+
'9BD' => "Fiat Automóveis",
|
155
|
+
'9BW' => "Volkswagen",
|
156
|
+
'93H' => "Honda",
|
157
|
+
'93W' => "Fiat Professional",
|
158
|
+
'93Z' => "Iveco",
|
159
|
+
'9BH' => "Hyundai",
|
160
|
+
}
|
161
|
+
|
162
|
+
COUNTRY_MATCHER = PrefixMatcher.new COUNTRIES
|
163
|
+
MANUFACTURER_MATCHER = PrefixMatcher.new MANUFACTURERS
|
164
|
+
|
165
|
+
def self.country_for(vin)
|
166
|
+
COUNTRY_MATCHER.find vin
|
167
|
+
end
|
168
|
+
|
169
|
+
def self.manufacturer_for(vin)
|
170
|
+
MANUFACTURER_MATCHER.find vin
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
data/lib/vindsl.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'vindsl/prefix_matcher'
|
2
|
+
|
3
|
+
describe Vindsl::PrefixMatcher do
|
4
|
+
let(:data){ {'a'=>'a', 'ba' => 'ba', 'bb' => 'bb'} }
|
5
|
+
|
6
|
+
subject{ described_class.new data }
|
7
|
+
|
8
|
+
it 'matches a one-character string' do
|
9
|
+
expect(subject.find 'a').to eq 'a'
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'matches a max-character string' do
|
13
|
+
expect(subject.find 'ba').to eq 'ba'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'returns nil on a failed match' do
|
17
|
+
expect(subject.find 'c').to be_nil
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'all_prefixes' do
|
21
|
+
it 'calculates all prefixes for a string' do
|
22
|
+
expect(subject.all_prefixes 'abc').to eq %w{a ab abc}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe 'first_prefix' do
|
27
|
+
it 'returns the first prefix that matches a hash entry' do
|
28
|
+
expect(subject.first_prefix 'abc').to eq 'a'
|
29
|
+
expect(subject.first_prefix 'ba').to eq 'ba'
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'returns nil on a non-matching prefix' do
|
33
|
+
expect(subject.first_prefix 'ccc').to be_nil
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
2
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
|
+
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|
4
|
+
# file to always be loaded, without a need to explicitly require it in any files.
|
5
|
+
#
|
6
|
+
# Given that it is always loaded, you are encouraged to keep this file as
|
7
|
+
# light-weight as possible. Requiring heavyweight dependencies from this file
|
8
|
+
# will add to the boot time of your test suite on EVERY test run, even for an
|
9
|
+
# individual file that may not need all of that loaded. Instead, consider making
|
10
|
+
# a separate helper file that requires the additional dependencies and performs
|
11
|
+
# the additional setup, and require it from the spec files that actually need it.
|
12
|
+
#
|
13
|
+
# The `.rspec` file also contains a few flags that are not defaults but that
|
14
|
+
# users commonly want.
|
15
|
+
#
|
16
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
17
|
+
RSpec.configure do |config|
|
18
|
+
# rspec-expectations config goes here. You can use an alternate
|
19
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
20
|
+
# assertions if you prefer.
|
21
|
+
config.expect_with :rspec do |expectations|
|
22
|
+
# This option will default to `true` in RSpec 4. It makes the `description`
|
23
|
+
# and `failure_message` of custom matchers include text for helper methods
|
24
|
+
# defined using `chain`, e.g.:
|
25
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
26
|
+
# # => "be bigger than 2 and smaller than 4"
|
27
|
+
# ...rather than:
|
28
|
+
# # => "be bigger than 2"
|
29
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
30
|
+
end
|
31
|
+
|
32
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
33
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
34
|
+
config.mock_with :rspec do |mocks|
|
35
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
36
|
+
# a real object. This is generally recommended, and will default to
|
37
|
+
# `true` in RSpec 4.
|
38
|
+
mocks.verify_partial_doubles = true
|
39
|
+
end
|
40
|
+
|
41
|
+
# The settings below are suggested to provide a good initial experience
|
42
|
+
# with RSpec, but feel free to customize to your heart's content.
|
43
|
+
=begin
|
44
|
+
# These two settings work together to allow you to limit a spec run
|
45
|
+
# to individual examples or groups you care about by tagging them with
|
46
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
47
|
+
# get run.
|
48
|
+
config.filter_run :focus
|
49
|
+
config.run_all_when_everything_filtered = true
|
50
|
+
|
51
|
+
# Limits the available syntax to the non-monkey patched syntax that is recommended.
|
52
|
+
# For more details, see:
|
53
|
+
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
54
|
+
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
55
|
+
# - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
|
56
|
+
config.disable_monkey_patching!
|
57
|
+
|
58
|
+
# This setting enables warnings. It's recommended, but in some cases may
|
59
|
+
# be too noisy due to issues in dependencies.
|
60
|
+
config.warnings = true
|
61
|
+
|
62
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
63
|
+
# file, and it's useful to allow more verbose output when running an
|
64
|
+
# individual spec file.
|
65
|
+
if config.files_to_run.one?
|
66
|
+
# Use the documentation formatter for detailed output,
|
67
|
+
# unless a formatter has already been configured
|
68
|
+
# (e.g. via a command-line flag).
|
69
|
+
config.default_formatter = 'doc'
|
70
|
+
end
|
71
|
+
|
72
|
+
# Print the 10 slowest examples and example groups at the
|
73
|
+
# end of the spec run, to help surface which specs are running
|
74
|
+
# particularly slow.
|
75
|
+
config.profile_examples = 10
|
76
|
+
|
77
|
+
# Run specs in random order to surface order dependencies. If you find an
|
78
|
+
# order dependency and want to debug it, you can fix the order by providing
|
79
|
+
# the seed, which is printed after each run.
|
80
|
+
# --seed 1234
|
81
|
+
config.order = :random
|
82
|
+
|
83
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
84
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
85
|
+
# test failures related to randomization by passing the same `--seed` value
|
86
|
+
# as the one that triggered the failure.
|
87
|
+
Kernel.srand config.seed
|
88
|
+
=end
|
89
|
+
end
|
data/spec/vin_spec.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'vindsl/vin'
|
2
|
+
|
3
|
+
describe Vindsl::VIN do
|
4
|
+
|
5
|
+
describe "Bryce's 2012 Mustang" do
|
6
|
+
let(:scarlet){ '1ZVBP8AM7C5280000' }
|
7
|
+
subject{ described_class.new scarlet }
|
8
|
+
|
9
|
+
it 'looks up the correct country of origin' do
|
10
|
+
expect(subject.country).to eq 'United States'
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'looks up the correct manufacturer' do
|
14
|
+
expect(subject.manufacturer).to eq 'Ford'
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'looks up the correct model year' do
|
18
|
+
expect(subject.model_year).to eq 2012
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/vindsl.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'vindsl/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "vindsl"
|
8
|
+
spec.version = Vindsl::VERSION
|
9
|
+
spec.authors = ["Bryce Kerley"]
|
10
|
+
spec.email = ["bkerley@brycekerley.net"]
|
11
|
+
spec.summary = %q{Vehicle Information Number gem}
|
12
|
+
spec.description = %q{This gem implements lookup tables for car serial numbers.}
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency 'rspec', '~> 3.1'
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vindsl
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Bryce Kerley
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-10-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.1'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.1'
|
55
|
+
description: This gem implements lookup tables for car serial numbers.
|
56
|
+
email:
|
57
|
+
- bkerley@brycekerley.net
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".gitignore"
|
63
|
+
- ".rspec"
|
64
|
+
- Gemfile
|
65
|
+
- LICENSE.txt
|
66
|
+
- README.md
|
67
|
+
- Rakefile
|
68
|
+
- lib/vindsl.rb
|
69
|
+
- lib/vindsl/alphabet.rb
|
70
|
+
- lib/vindsl/prefix_matcher.rb
|
71
|
+
- lib/vindsl/version.rb
|
72
|
+
- lib/vindsl/vin.rb
|
73
|
+
- lib/vindsl/wmi.rb
|
74
|
+
- spec/prefix_matcher_spec.rb
|
75
|
+
- spec/spec_helper.rb
|
76
|
+
- spec/vin_spec.rb
|
77
|
+
- vindsl.gemspec
|
78
|
+
homepage: ''
|
79
|
+
licenses:
|
80
|
+
- MIT
|
81
|
+
metadata: {}
|
82
|
+
post_install_message:
|
83
|
+
rdoc_options: []
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
requirements: []
|
97
|
+
rubyforge_project:
|
98
|
+
rubygems_version: 2.2.2
|
99
|
+
signing_key:
|
100
|
+
specification_version: 4
|
101
|
+
summary: Vehicle Information Number gem
|
102
|
+
test_files:
|
103
|
+
- spec/prefix_matcher_spec.rb
|
104
|
+
- spec/spec_helper.rb
|
105
|
+
- spec/vin_spec.rb
|