instavin 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 66c83e96c3f0eb36c68587dfab247cb89b77f924
4
+ data.tar.gz: 61eee28eea962b2a53e652a3ce3817030d77e3da
5
+ SHA512:
6
+ metadata.gz: 422473025aeac6ef28da367c9037c1a87b7391dbd1dff1cf87dfbc633548f4bc3ba03107bb189bc76ee5a1f0ae536436476a1105722115c624194cb0724e1bb6
7
+ data.tar.gz: 58e5135ec99f9c8ebec7a1d1dde402542cf7ac1fd5376afcff9c41fdc62f43a78c406acb3a115c7a4a83957a0bc1d84fa3b794ce73e40df475a7cebec0fdbb88
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in instavin.gemspec
4
+ gemspec
@@ -0,0 +1,43 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ instavin (0.0.1)
5
+ httparty
6
+ symboltable
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ addressable (2.3.5)
12
+ crack (0.4.1)
13
+ safe_yaml (~> 0.9.0)
14
+ excon (0.25.3)
15
+ httparty (0.11.0)
16
+ multi_json (~> 1.0)
17
+ multi_xml (>= 0.5.2)
18
+ metaclass (0.0.1)
19
+ minitest (5.0.6)
20
+ mocha (0.14.0)
21
+ metaclass (~> 0.0.1)
22
+ multi_json (1.7.9)
23
+ multi_xml (0.5.5)
24
+ rake (10.1.0)
25
+ safe_yaml (0.9.5)
26
+ symboltable (1.0.2)
27
+ vcr (2.5.0)
28
+ webmock (1.11.0)
29
+ addressable (>= 2.2.7)
30
+ crack (>= 0.3.2)
31
+
32
+ PLATFORMS
33
+ ruby
34
+
35
+ DEPENDENCIES
36
+ bundler (~> 1.3)
37
+ excon
38
+ instavin!
39
+ minitest
40
+ mocha
41
+ rake
42
+ vcr
43
+ webmock (= 1.11)
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2013 Cory Stephenson
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,65 @@
1
+ instaVIN
2
+ ========
3
+
4
+ Gem for connection to instaVIN and retrieving a report.
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ gem 'instavin'
11
+
12
+ And then execute:
13
+
14
+ $ bundle
15
+
16
+ Or install it yourself as:
17
+
18
+ $ gem install instavin
19
+
20
+ ## Usage
21
+
22
+ To start, use a configuration block to set up your credentials:
23
+
24
+ InstaVIN.configure do |config|
25
+ config.user_id = "xxxx"
26
+ config.password = "xxxx"
27
+ config.api_key = "xxxx"
28
+ end
29
+
30
+ There are two ways to use the service. Through your own username and password, which are set in the configuration. Or, through an access_token generated by another user's user_id and password, and your API key.
31
+
32
+ To request an access token for another user:
33
+
34
+ InstaVIN.configure do |config|
35
+ config.api_key = "xxxx"
36
+ end
37
+
38
+ reports = InstaVIN::Reports.new
39
+ token = reports.access_token(username, password)
40
+ reports.set_auth_with_token(token)
41
+ reports.vtr_report("VIN")
42
+
43
+ or
44
+
45
+ InstaVIN.configure do |config|
46
+ config.api_key = "xxxx"
47
+ end
48
+
49
+ reports = InstaVIN::Reports.new(access_token)
50
+ reports.vtr_report("VIN")
51
+
52
+ There are two reports you can request through the API.
53
+ VTR is a full report, SVC is a partial, Salvage and Vehicle Check report.
54
+
55
+ reports = InstaVIN::Reports.new
56
+ reports.vtr_report("VIN")
57
+ reports.svc_report("VIN")
58
+
59
+ ## Contributing
60
+
61
+ 1. Fork it
62
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
63
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
64
+ 4. Push to the branch (`git push origin my-new-feature`)
65
+ 5. Create new Pull Request
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs.push "lib"
6
+ t.test_files = FileList["test/**/*_test.rb"]
7
+ t.verbose = true
8
+ end
9
+
10
+ task default: :test
@@ -0,0 +1,31 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'instavin/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "instavin"
8
+ spec.version = InstaVIN::VERSION
9
+ spec.authors = ["Tony Coconate", "Cory Stephenson"]
10
+ spec.email = ["me@tonycoconate.com", "aevin@me.com"]
11
+ spec.description = %q{Provides a ruby interface for the instaVIN's API. Read more about it here: http://www.blackbookusa.com}
12
+ spec.summary = %q{A ruby interface for instaVIN Book's API}
13
+ spec.homepage = "http://github.com/Aevin1387/instaVIN"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
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_dependency "symboltable"
22
+ spec.add_dependency "httparty"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "minitest"
27
+ spec.add_development_dependency "vcr"
28
+ spec.add_development_dependency "webmock", '1.11' # Locked at 1.12.x to prevent VCR warnings
29
+ spec.add_development_dependency "excon"
30
+ spec.add_development_dependency "mocha"
31
+ end
@@ -0,0 +1,16 @@
1
+ require "instavin/version"
2
+ require "instavin/errors"
3
+ require "instavin/reports"
4
+ require "symboltable"
5
+
6
+ module InstaVIN
7
+ extend self
8
+
9
+ def configure
10
+ yield config
11
+ end
12
+
13
+ def config
14
+ @@config ||= SymbolTable.new
15
+ end
16
+ end
@@ -0,0 +1,6 @@
1
+ module InstaVIN
2
+ class InstaVINError < StandardError; end
3
+ class DeveloperError < InstaVINError; end
4
+ class DowntimeError < InstaVINError; end
5
+ class NoDataError < InstaVINError; end
6
+ end
@@ -0,0 +1,73 @@
1
+ require "httparty"
2
+
3
+ module InstaVIN
4
+ class Reports
5
+ include HTTParty
6
+ base_uri "https://www.instavin.com/api/v2/json"
7
+
8
+
9
+ def initialize(access_token=nil)
10
+ if access_token.nil? != true
11
+ @auth = { username: access_token, password: InstaVIN.config.api_key }
12
+ else
13
+ @auth = { username: InstaVIN.config.username, password: InstaVIN.config.password }
14
+ end
15
+ end
16
+
17
+ def set_auth_with_token(access_token)
18
+ @auth = { username: access_token, password: InstaVIN.config.api_key }
19
+ end
20
+
21
+ def order_report(report_type, options)
22
+ raise ArgumentError, "A VIN is required" if options[:vin].nil? || options[:vin].empty?
23
+
24
+ response = self.class.post("/order/#{report_type}", { body: options, basic_auth: @auth })
25
+ parsed_response = response.parsed_response
26
+ check_response_for_errors parsed_response
27
+ parsed_response["items"].map do |report_item|
28
+ check_report_for_error report_item
29
+
30
+ raise NoDataError if report_item["report_summary"].nil?
31
+ report_summary = report_item["report_summary"]
32
+ {
33
+ vin: report_summary["vin"],
34
+ json_url: report_summary["url"],
35
+ html_url: report_summary["html_url"],
36
+ pdf_url: report_summary["pdf_url"]
37
+ }
38
+ end
39
+ end
40
+
41
+ def vtr_report(vin)
42
+ order_report("VTR", vin: vin)
43
+ end
44
+
45
+ def svc_report(vin)
46
+ order_report("SVC", vin: vin)
47
+ end
48
+
49
+ def access_token(username, password)
50
+ response = self.class.post("/account/access_token",
51
+ body: { api_key: InstaVIN.config.api_key },
52
+ basic_auth: { username: username, password: password }
53
+ ).parsed_response
54
+
55
+ check_response_for_errors(response)
56
+ raise DeveloperError, "InstaVIN did not respond with an access token" if response["token"].nil? || response["token"].empty?
57
+ response["token"]
58
+ end
59
+
60
+ private
61
+
62
+ def check_response_for_errors(response)
63
+ raise DowntimeError, "InstaVIN is down for #{response["reason"]} until approximately #{response["down_until"]}." if(response["_type"] == "downtime")
64
+ raise DeveloperError, "#{response["status_code"]}: #{response["error_message"]}" if response["_type"] == "error"
65
+ end
66
+
67
+ def check_report_for_error(report)
68
+ return unless report["state"] == "error"
69
+ raise NoDataError if report["detail_code"] == "NO_DATA_AVAILABLE"
70
+ raise DeveloperError, "InstaVIN Report Error #{report["detail_code"]}"
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,3 @@
1
+ module InstaVIN
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,45 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://access_token:api_key@www.instavin.com/api/v2/json/order/VTR
6
+ body:
7
+ encoding: UTF-8
8
+ string: vin=1D7HW22K45S177616
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 401
13
+ message: UNAUTHORIZED
14
+ headers:
15
+ Date:
16
+ - Tue, 13 Aug 2013 20:53:48 GMT
17
+ Server:
18
+ - Apache/2.2.3 (Red Hat)
19
+ X-Powered-By:
20
+ - PHP/5.2.17
21
+ Set-Cookie:
22
+ - PHPSESSID=jfhhuq1od3qkjoe06a292tk574; path=/; domain=www.instavin.com
23
+ Expires:
24
+ - Thu, 19 Nov 1981 08:52:00 GMT
25
+ Cache-Control:
26
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
27
+ Pragma:
28
+ - no-cache
29
+ Connection:
30
+ - close
31
+ X-Original-Transfer-Encoding:
32
+ - chunked
33
+ Content-Length:
34
+ - '83'
35
+ Access-Control-Allow-Origin:
36
+ - http://myvinreport.com
37
+ Content-Type:
38
+ - application/json
39
+ body:
40
+ encoding: UTF-8
41
+ string: "{\"status_code\": 401, \"_type\": \"error\", \"error_message\": \"Invalid
42
+ authentication\"}\r\n"
43
+ http_version:
44
+ recorded_at: Tue, 13 Aug 2013 20:53:48 GMT
45
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,45 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://username:password@www.instavin.com/api/v2/json/account/access_token
6
+ body:
7
+ encoding: UTF-8
8
+ string: api_key=api_key
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 401
13
+ message: UNAUTHORIZED
14
+ headers:
15
+ Date:
16
+ - Tue, 13 Aug 2013 20:53:47 GMT
17
+ Server:
18
+ - Apache/2.2.3 (Red Hat)
19
+ X-Powered-By:
20
+ - PHP/5.2.17
21
+ Set-Cookie:
22
+ - PHPSESSID=hhekl6m8t5scd9v58es9gcdbq5; path=/; domain=www.instavin.com
23
+ Expires:
24
+ - Thu, 19 Nov 1981 08:52:00 GMT
25
+ Cache-Control:
26
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
27
+ Pragma:
28
+ - no-cache
29
+ Connection:
30
+ - close
31
+ X-Original-Transfer-Encoding:
32
+ - chunked
33
+ Content-Length:
34
+ - '83'
35
+ Access-Control-Allow-Origin:
36
+ - http://myvinreport.com
37
+ Content-Type:
38
+ - application/json
39
+ body:
40
+ encoding: UTF-8
41
+ string: "{\"status_code\": 401, \"_type\": \"error\", \"error_message\": \"Invalid
42
+ authentication\"}\r\n"
43
+ http_version:
44
+ recorded_at: Tue, 13 Aug 2013 20:53:47 GMT
45
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,45 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://username:password@www.instavin.com/api/v2/json/order/VTR
6
+ body:
7
+ encoding: UTF-8
8
+ string: vin=INVALID_VIN
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 401
13
+ message: UNAUTHORIZED
14
+ headers:
15
+ Date:
16
+ - Tue, 13 Aug 2013 20:53:47 GMT
17
+ Server:
18
+ - Apache/2.2.3 (Red Hat)
19
+ X-Powered-By:
20
+ - PHP/5.2.17
21
+ Set-Cookie:
22
+ - PHPSESSID=r659krdgchk5muvuba3cavplh1; path=/; domain=www.instavin.com
23
+ Expires:
24
+ - Thu, 19 Nov 1981 08:52:00 GMT
25
+ Cache-Control:
26
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
27
+ Pragma:
28
+ - no-cache
29
+ Connection:
30
+ - close
31
+ X-Original-Transfer-Encoding:
32
+ - chunked
33
+ Content-Length:
34
+ - '83'
35
+ Access-Control-Allow-Origin:
36
+ - http://myvinreport.com
37
+ Content-Type:
38
+ - application/json
39
+ body:
40
+ encoding: UTF-8
41
+ string: "{\"status_code\": 401, \"_type\": \"error\", \"error_message\": \"Invalid
42
+ authentication\"}\r\n"
43
+ http_version:
44
+ recorded_at: Tue, 13 Aug 2013 20:53:47 GMT
45
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,45 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://username:password@www.instavin.com/api/v2/json/order/VTR
6
+ body:
7
+ encoding: UTF-8
8
+ string: vin=1D7HW22K45S177616
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 401
13
+ message: UNAUTHORIZED
14
+ headers:
15
+ Date:
16
+ - Tue, 13 Aug 2013 20:53:46 GMT
17
+ Server:
18
+ - Apache/2.2.3 (Red Hat)
19
+ X-Powered-By:
20
+ - PHP/5.2.17
21
+ Set-Cookie:
22
+ - PHPSESSID=9ktgmtmohv5erqre4vraqgi6k7; path=/; domain=www.instavin.com
23
+ Expires:
24
+ - Thu, 19 Nov 1981 08:52:00 GMT
25
+ Cache-Control:
26
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
27
+ Pragma:
28
+ - no-cache
29
+ Connection:
30
+ - close
31
+ X-Original-Transfer-Encoding:
32
+ - chunked
33
+ Content-Length:
34
+ - '83'
35
+ Access-Control-Allow-Origin:
36
+ - http://myvinreport.com
37
+ Content-Type:
38
+ - application/json
39
+ body:
40
+ encoding: UTF-8
41
+ string: "{\"status_code\": 401, \"_type\": \"error\", \"error_message\": \"Invalid
42
+ authentication\"}\r\n"
43
+ http_version:
44
+ recorded_at: Tue, 13 Aug 2013 20:53:47 GMT
45
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,58 @@
1
+ require_relative "../minitest_helper"
2
+
3
+ describe InstaVIN::Reports do
4
+ let(:username) { "username" }
5
+ let(:password) { "password" }
6
+ let(:api_key) { "api_key" }
7
+ let(:access_token) { "access_token" }
8
+
9
+ before do
10
+ InstaVIN.configure do |config|
11
+ config.username = username
12
+ config.password = password
13
+ config.api_key = api_key
14
+ end
15
+ end
16
+
17
+ let(:reports) { InstaVIN::Reports.new }
18
+ let(:vin) { "1D7HW22K45S177616" }
19
+
20
+ describe "using configured user" do
21
+ it "can get a vtr report" do
22
+ VCR.use_cassette("user_vtr_report_success") do
23
+ response = reports.vtr_report(vin).first
24
+ response.must_include :html_url
25
+ response.must_include :json_url
26
+ response.must_include :pdf_url
27
+ end
28
+ end
29
+
30
+ it "can get an access token" do
31
+ VCR.use_cassette("user_access_token_success") do
32
+ response = reports.access_token(InstaVIN.config.username, InstaVIN.config.password)
33
+ assert_equal response, access_token
34
+ end
35
+ end
36
+
37
+ it "should raise an error if the vin is invalid" do
38
+ VCR.use_cassette("user_vtr_invalid_vin") do
39
+ proc { reports.vtr_report("INVALID_VIN") }.must_raise InstaVIN::NoDataError
40
+ end
41
+ end
42
+ end
43
+
44
+ describe "using an access token" do
45
+ before do
46
+ reports.set_auth_with_token(access_token)
47
+ end
48
+
49
+ it "can get a vtr report" do
50
+ VCR.use_cassette("access_vtr_report_success") do
51
+ response = reports.vtr_report(vin).first
52
+ response.must_include :html_url
53
+ response.must_include :json_url
54
+ response.must_include :pdf_url
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,15 @@
1
+ require_relative "minitest_helper"
2
+
3
+ describe InstaVIN do
4
+ before do
5
+ InstaVIN.remove_class_variable :@@config if InstaVIN.class_variable_defined? :@@config
6
+ end
7
+
8
+ it "should yield a configuration object to block" do
9
+ InstaVIN.configure do |config|
10
+ config.foo = "bar"
11
+ end
12
+
13
+ InstaVIN.config.foo.must_equal "bar"
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ lib = File.expand_path('../../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ require "instavin"
5
+
6
+ require "minitest/autorun"
7
+ require "minitest/spec"
8
+ require "mocha/setup"
9
+ require "vcr"
10
+
11
+ VCR.configure do |c|
12
+ c.cassette_library_dir = "test/fixtures/vcr_cassettes"
13
+ c.hook_into :webmock
14
+ c.default_cassette_options = { match_requests_on: [:method, :uri, :body] }
15
+ end
metadata ADDED
@@ -0,0 +1,198 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: instavin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Tony Coconate
8
+ - Cory Stephenson
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-08-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: symboltable
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: httparty
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: bundler
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '1.3'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: '1.3'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: minitest
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: vcr
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: webmock
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '='
103
+ - !ruby/object:Gem::Version
104
+ version: '1.11'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '='
110
+ - !ruby/object:Gem::Version
111
+ version: '1.11'
112
+ - !ruby/object:Gem::Dependency
113
+ name: excon
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: mocha
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - '>='
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ description: 'Provides a ruby interface for the instaVIN''s API. Read more about it
141
+ here: http://www.blackbookusa.com'
142
+ email:
143
+ - me@tonycoconate.com
144
+ - aevin@me.com
145
+ executables: []
146
+ extensions: []
147
+ extra_rdoc_files: []
148
+ files:
149
+ - .gitignore
150
+ - Gemfile
151
+ - Gemfile.lock
152
+ - LICENSE
153
+ - README.md
154
+ - Rakefile
155
+ - instavin.gemspec
156
+ - lib/instavin.rb
157
+ - lib/instavin/errors.rb
158
+ - lib/instavin/reports.rb
159
+ - lib/instavin/version.rb
160
+ - test/fixtures/vcr_cassettes/access_vtr_report_success.yml
161
+ - test/fixtures/vcr_cassettes/user_access_token_success.yml
162
+ - test/fixtures/vcr_cassettes/user_vtr_invalid_vin.yml
163
+ - test/fixtures/vcr_cassettes/user_vtr_report_success.yml
164
+ - test/instavin/reports_test.rb
165
+ - test/instavin_test.rb
166
+ - test/minitest_helper.rb
167
+ homepage: http://github.com/Aevin1387/instaVIN
168
+ licenses:
169
+ - MIT
170
+ metadata: {}
171
+ post_install_message:
172
+ rdoc_options: []
173
+ require_paths:
174
+ - lib
175
+ required_ruby_version: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - '>='
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ required_rubygems_version: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - '>='
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ requirements: []
186
+ rubyforge_project:
187
+ rubygems_version: 2.0.5
188
+ signing_key:
189
+ specification_version: 4
190
+ summary: A ruby interface for instaVIN Book's API
191
+ test_files:
192
+ - test/fixtures/vcr_cassettes/access_vtr_report_success.yml
193
+ - test/fixtures/vcr_cassettes/user_access_token_success.yml
194
+ - test/fixtures/vcr_cassettes/user_vtr_invalid_vin.yml
195
+ - test/fixtures/vcr_cassettes/user_vtr_report_success.yml
196
+ - test/instavin/reports_test.rb
197
+ - test/instavin_test.rb
198
+ - test/minitest_helper.rb