edmunds_api 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 38ef22ebe088587aae7b6b5dfd427a35856d0635
4
+ data.tar.gz: 798d1baabef4bac00aa4008dc300e37653f455cf
5
+ SHA512:
6
+ metadata.gz: 668cfd88b25687e1c89797df93841c1cab3cc0d1c223a8ffc07e28df97fc3373b28c4a94c19a71261d035155ff4851919cf86f8a1b7228449fc7d959709f8039
7
+ data.tar.gz: 7265458a80f33fab16838995e316db007e092d4124e3861ea22ceb6b4e35631a32464b16130d7304c5428517e4b0b2b830950a527a21cb9a7c7d31388e6b410d
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ *.gem
2
+ /.bundle/
3
+ /.yardoc
4
+ /Gemfile.lock
5
+ /_yardoc/
6
+ /coverage/
7
+ /doc/
8
+ /pkg/
9
+ /spec/reports/
10
+ /tmp/
11
+ tags
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in edmunds_api.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Webstreak LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all 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,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,47 @@
1
+ Edmunds Api ruby client.
2
+
3
+ > *Status*: Beta. We are preparing the project for public release soon
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'edmunds-api-ruby', '~> 0.1.0'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install edmunds-api-ruby
20
+
21
+ ## Usage
22
+ Add api_key in initializer:
23
+
24
+ ```ruby
25
+ Edmunds.configure do |config|
26
+ config.api_key = 'your-api-key'
27
+ end
28
+ ```
29
+ Basic usage:
30
+ ```ruby
31
+ vehicle_api = Edmunds::Api.new.vehicles
32
+ vehicle_api.makes.count
33
+ ```
34
+ You can also pass options to an Api endpoint:
35
+ ```ruby
36
+ vehicle_api = Edmunds::Api.new.vehicle
37
+ vehicle_api.make('Lexus', {state: 'new'})
38
+ ```
39
+
40
+ ## Contributing
41
+
42
+ Bug reports and pull requests are welcome on GitHub at https://github.com/webstreak/edmunds-api-ruby.
43
+
44
+
45
+ ## License
46
+
47
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "edmunds-api-ruby"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,29 @@
1
+ lib = File.expand_path('../lib/', __FILE__)
2
+ $:.unshift lib unless $:.include?(lib)
3
+
4
+ require 'edmunds/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'edmunds_api'
8
+ spec.version = Edmunds::VERSION
9
+ spec.authors = ['Alexander Belyaev']
10
+ spec.email = ['alex@webstreak.com']
11
+
12
+ spec.summary = 'Edmunds Api ruby client'
13
+ spec.description = ''
14
+ spec.homepage = 'https://github.com/webstreak/edmunds-api-ruby'
15
+ spec.license = 'MIT'
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.required_ruby_version = '>= 2.0'
21
+
22
+ spec.add_dependency 'http', '~> 2.0'
23
+ spec.add_dependency 'configurations', '~> 2.2'
24
+
25
+ spec.add_development_dependency 'bundler', '~> 1.13'
26
+ spec.add_development_dependency 'rake', '~> 11.3'
27
+ spec.add_development_dependency 'rspec', '~> 3.5'
28
+ spec.add_development_dependency 'webmock', '~> 2.1'
29
+ end
data/lib/edmunds.rb ADDED
@@ -0,0 +1,24 @@
1
+ require 'json'
2
+ require 'http'
3
+ require 'configurations'
4
+
5
+ require 'edmunds/version'
6
+ require 'edmunds/configuration'
7
+ require 'edmunds/request'
8
+ require 'edmunds/error'
9
+ require 'edmunds/api'
10
+ require 'edmunds/vehicle'
11
+ require 'edmunds/vehicle/makes'
12
+ require 'edmunds/vehicle/models'
13
+ require 'edmunds/vehicle/vin'
14
+ require 'edmunds/vehicle/styles'
15
+ require 'edmunds/vehicle/engines'
16
+ require 'edmunds/vehicle/transmissions'
17
+ require 'edmunds/vehicle/colors'
18
+ require 'edmunds/vehicle/options'
19
+ require 'edmunds/vehicle/equipment'
20
+ require 'edmunds/vehicle/squishvins'
21
+ require 'edmunds/vehicle/safety'
22
+ require 'edmunds/vehicle/grades'
23
+ require 'edmunds/media'
24
+ require 'edmunds/media/photos'
@@ -0,0 +1,15 @@
1
+ module Edmunds
2
+ class Api
3
+
4
+ include Edmunds::Request
5
+
6
+ def vehicles
7
+ self.extend Edmunds::Vehicle
8
+ end
9
+
10
+ def media
11
+ self.extend Edmunds::Media
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ module Edmunds
2
+
3
+ include Configurations
4
+
5
+ not_configured :api_key do |prop|
6
+ raise NoMethodError, "#{prop} must be configured"
7
+ end
8
+
9
+ configuration_defaults do |c|
10
+ c.request_params.fmt = 'json'
11
+ c.api_version = 2
12
+ end
13
+
14
+ end
@@ -0,0 +1,40 @@
1
+ module Edmunds
2
+ class Error < StandardError
3
+
4
+ BadRequest = Class.new self
5
+ Unauthorized = Class.new self
6
+ Forbidden = Class.new self
7
+ NotFound = Class.new self
8
+ InternalServerError = Class.new self
9
+ BadGateway = Class.new self
10
+ ServiceUnavailable = Class.new self
11
+ GatewayTimeout = Class.new self
12
+
13
+ ERRORS = {
14
+ 400 => Edmunds::Error::BadRequest,
15
+ 401 => Edmunds::Error::Unauthorized,
16
+ 403 => Edmunds::Error::Forbidden,
17
+ 404 => Edmunds::Error::NotFound,
18
+ 500 => Edmunds::Error::InternalServerError,
19
+ 502 => Edmunds::Error::BadGateway,
20
+ 503 => Edmunds::Error::ServiceUnavailable,
21
+ 504 => Edmunds::Error::GatewayTimeout
22
+ }.freeze
23
+
24
+
25
+ def self.from_response(code, body)
26
+ message = "http code: #{code}. "
27
+ if body['message']
28
+ message << "Http message: #{body['message']}"
29
+ else
30
+ message = 'No message in http body'
31
+ end
32
+ new message
33
+ end
34
+
35
+ def initialize(message)
36
+ super message
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,15 @@
1
+ module Edmunds
2
+
3
+ module Media
4
+ def send_request(path, options={})
5
+ api_call 'media', path, options
6
+ end
7
+ end
8
+
9
+ class Api
10
+ def photos
11
+ self.extend Edmunds::Media::Photos
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,24 @@
1
+ module Edmunds
2
+ module Media
3
+ module Photos
4
+
5
+ def by_year_make_model(year, make, model)
6
+ send_request "/#{make}/#{model}/#{year}/photos"
7
+ end
8
+
9
+ def by_tag(tag, options={})
10
+ options = {tag: tag}.merge(options)
11
+ send_request '/photoset', options
12
+ end
13
+
14
+ def by_style_id(style_id, options={})
15
+ send_request "/styles/#{style_id}/photos", options
16
+ end
17
+
18
+ def by_make_model(make, model, options={})
19
+ send_request "/#{make}/#{model}/photos", options
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,52 @@
1
+ module Edmunds
2
+ module Request
3
+
4
+ API_URL = 'https://api.edmunds.com/api'
5
+
6
+ def api_call(api_path, path, options={})
7
+ url = build_api_url api_path, path
8
+ request_params = merge_required_params options
9
+ response = HTTP.headers(http_headers).get(url, params: request_params)
10
+ parse_response response
11
+ end
12
+
13
+ def build_api_url(api_path, path)
14
+ api_version = 'v' + Edmunds.configuration.api_version.to_s
15
+ API_URL + '/' + api_path + '/' + api_version + path
16
+ end
17
+
18
+ def merge_required_params(options)
19
+ {
20
+ api_key: Edmunds.configuration.api_key,
21
+ fmt: Edmunds.configuration.request_params.fmt
22
+ }.merge(options)
23
+ end
24
+
25
+ def http_headers
26
+ {
27
+ 'User-Agent' => 'EdmundsApi ruby client',
28
+ 'Accept' => 'application/json'
29
+ }
30
+ end
31
+
32
+ def parse_response(response)
33
+ begin
34
+ body = JSON.parse response.body
35
+ rescue
36
+ body = {}
37
+ end
38
+
39
+ if response.code == 200
40
+ body
41
+ else
42
+ raise_error response.code, body
43
+ end
44
+ end
45
+
46
+ def raise_error(code, body)
47
+ klass = Edmunds::Error::ERRORS[code]
48
+ raise klass.from_response code, body
49
+ end
50
+
51
+ end
52
+ end
@@ -0,0 +1,59 @@
1
+ module Edmunds
2
+
3
+ module Vehicle
4
+ def send_request(path, options={})
5
+ api_call 'vehicle', path, options
6
+ end
7
+ end
8
+
9
+ class Api
10
+ def makes
11
+ self.extend Edmunds::Vehicle::Makes
12
+ end
13
+
14
+ def models
15
+ self.extend Edmunds::Vehicle::Models
16
+ end
17
+
18
+ def vin
19
+ self.extend Edmunds::Vehicle::Vin
20
+ end
21
+
22
+ def styles
23
+ self.extend Edmunds::Vehicle::Styles
24
+ end
25
+
26
+ def engines
27
+ self.extend Edmunds::Vehicle::Engines
28
+ end
29
+
30
+ def transmissions
31
+ self.extend Edmunds::Vehicle::Transmissions
32
+ end
33
+
34
+ def colors
35
+ self.extend Edmunds::Vehicle::Colors
36
+ end
37
+
38
+ def options
39
+ self.extend Edmunds::Vehicle::Options
40
+ end
41
+
42
+ def equipment
43
+ self.extend Edmunds::Vehicle::Equipment
44
+ end
45
+
46
+ def squishvins
47
+ self.extend Edmunds::Vehicle::Squishvins
48
+ end
49
+
50
+ def safety
51
+ self.extend Edmunds::Vehicle::Safety
52
+ end
53
+
54
+ def grades
55
+ self.extend Edmunds::Vehicle::Grades
56
+ end
57
+ end
58
+
59
+ end
@@ -0,0 +1,15 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Colors
4
+
5
+ def details(color_id)
6
+ send_request "/colors/#{color_id}"
7
+ end
8
+
9
+ def by_style_id(style_id, options={})
10
+ send_request "/styles/#{style_id}/colors", options
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Engines
4
+
5
+ def details(engine_id)
6
+ send_request "/engines/#{engine_id}"
7
+ end
8
+
9
+ def by_style_id(style_id, options={})
10
+ send_request "/styles/#{style_id}/engines", options
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Equipment
4
+
5
+ def details(equipment_id)
6
+ send_request "/equipment/#{equipment_id}"
7
+ end
8
+
9
+ def by_style_id(style_id, options={})
10
+ send_request "/styles/#{style_id}/equipment", options
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Grades
4
+
5
+ def by_style_id(style_id)
6
+ send_request "/styles/#{style_id}/grade"
7
+ end
8
+
9
+ def details(make, model, year)
10
+ send_request "/#{make}/#{model}/#{year}/grade"
11
+ end
12
+
13
+ def rating(make, model, year)
14
+ send_request "/grade/#{make}/#{model}/#{year}"
15
+ end
16
+
17
+ def by_review_id(make, model, year, review_id)
18
+ send_request "/#{make}/#{model}/#{year}/grade/#{review_id}"
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Makes
4
+
5
+ def count(options={})
6
+ send_request '/makes/count', options
7
+ end
8
+
9
+ def all_makes(options={})
10
+ send_request '/makes', options
11
+ end
12
+
13
+ def make(make, options={})
14
+ send_request "/#{make}", options
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Models
4
+
5
+ def count(make, options={})
6
+ send_request "/#{make}/models/count", options
7
+ end
8
+
9
+ def models(make, options={})
10
+ send_request "/#{make}/models", options
11
+ end
12
+
13
+ def model(make, model, options={})
14
+ send_request "/#{make}/#{model}", options
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Options
4
+
5
+ def details(option_id)
6
+ send_request "/options/#{option_id}"
7
+ end
8
+
9
+ def by_style_id(style_id, options={})
10
+ send_request "/styles/#{style_id}/options", options
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Safety
4
+
5
+ def ratings(*args)
6
+ if args.count == 1
7
+ send_request "/styles/#{args[0]}/safety"
8
+ else
9
+ make = args[0]
10
+ model = args[1]
11
+ year = args[2]
12
+ send_request "/#{make}/#{model}/#{year}/safety"
13
+ end
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Squishvins
4
+
5
+ def decode(vin)
6
+ send_request "/squishvins/#{vin}"
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,35 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Styles
4
+
5
+ def count(options={})
6
+ send_request '/styles/count', options
7
+ end
8
+
9
+ def make_count(make, options={})
10
+ send_request "/#{make}/styles/count", options
11
+ end
12
+
13
+ def make_model_count(make, model, options={})
14
+ send_request "/#{make}/#{model}/styles/count", options
15
+ end
16
+
17
+ def make_model_year_count(make, model, year, options={})
18
+ send_request "/#{make}/#{model}/#{year}/styles/count", options
19
+ end
20
+
21
+ def id(style_id, options={})
22
+ send_request "/styles/#{style_id}", options
23
+ end
24
+
25
+ def make_model_year(make, model, year, options={})
26
+ send_request "/#{make}/#{model}/#{year}/styles", options
27
+ end
28
+
29
+ def chrome_data(chrome_id, options={})
30
+ send_request "/partners/chrome/styles/#{chrome_id}", options
31
+ end
32
+
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,15 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Transmissions
4
+
5
+ def details(transmission_id)
6
+ send_request "/transmissions/#{transmission_id}"
7
+ end
8
+
9
+ def by_style_id(style_id, options={})
10
+ send_request "/styles/#{style_id}/transmissions", options
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ module Edmunds
2
+ module Vehicle
3
+ module Vin
4
+
5
+ def decode(vin, options={})
6
+ send_request "/vins/#{vin}", options
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module Edmunds
2
+ VERSION = '0.1.0'
3
+ end
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: edmunds_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Alexander Belyaev
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-12-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: http
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: configurations
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.13'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.13'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '11.3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '11.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.5'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.1'
97
+ description: ''
98
+ email:
99
+ - alex@webstreak.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - ".rspec"
106
+ - Gemfile
107
+ - LICENSE.txt
108
+ - README.md
109
+ - Rakefile
110
+ - bin/console
111
+ - bin/setup
112
+ - edmunds_api.gemspec
113
+ - lib/edmunds.rb
114
+ - lib/edmunds/api.rb
115
+ - lib/edmunds/configuration.rb
116
+ - lib/edmunds/error.rb
117
+ - lib/edmunds/media.rb
118
+ - lib/edmunds/media/photos.rb
119
+ - lib/edmunds/request.rb
120
+ - lib/edmunds/vehicle.rb
121
+ - lib/edmunds/vehicle/colors.rb
122
+ - lib/edmunds/vehicle/engines.rb
123
+ - lib/edmunds/vehicle/equipment.rb
124
+ - lib/edmunds/vehicle/grades.rb
125
+ - lib/edmunds/vehicle/makes.rb
126
+ - lib/edmunds/vehicle/models.rb
127
+ - lib/edmunds/vehicle/options.rb
128
+ - lib/edmunds/vehicle/safety.rb
129
+ - lib/edmunds/vehicle/squishvins.rb
130
+ - lib/edmunds/vehicle/styles.rb
131
+ - lib/edmunds/vehicle/transmissions.rb
132
+ - lib/edmunds/vehicle/vin.rb
133
+ - lib/edmunds/version.rb
134
+ homepage: https://github.com/webstreak/edmunds-api-ruby
135
+ licenses:
136
+ - MIT
137
+ metadata: {}
138
+ post_install_message:
139
+ rdoc_options: []
140
+ require_paths:
141
+ - lib
142
+ required_ruby_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '2.0'
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ requirements: []
153
+ rubyforge_project:
154
+ rubygems_version: 2.5.1
155
+ signing_key:
156
+ specification_version: 4
157
+ summary: Edmunds Api ruby client
158
+ test_files: []