smartcar 3.0.4 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +9 -0
- data/.travis.yml +1 -0
- data/Gemfile.lock +30 -44
- data/README.md +26 -0
- data/lib/smartcar/base.rb +13 -7
- data/lib/smartcar/vehicle.rb +23 -4
- data/lib/smartcar/version.rb +1 -1
- data/lib/smartcar.rb +28 -20
- data/ruby-sdk.gemspec +3 -2
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af85a8f04bb5ecfd37182ae539ef60e5ca4e9487edf5db544109417df43d82d0
|
4
|
+
data.tar.gz: 5f2ccac9657e5e5b122b32943fa48845aa0acd5319dccc8836fd6b3cbf063ced
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47abd5b611ddc7089be88614c2b79a4d2c33db498f1254eea55f2ed1426b795752b47b7e08e9ac8825086790313738f16affdf536ebed450963b36fd0d1305e3
|
7
|
+
data.tar.gz: 3ffef0a6f8f06da4c9f70a6798a9f701521831cdc30bbc183e613515b2b9520a492bd2d9e686a5c4cca0421d42def98bc0ccb6c4239cabd1d7b250ba5416f31d
|
data/.rubocop.yml
CHANGED
@@ -11,6 +11,12 @@ Metrics/AbcSize:
|
|
11
11
|
Naming/AccessorMethodName:
|
12
12
|
Enabled: false
|
13
13
|
|
14
|
+
# Disabling this until we figure out a better way than using openstruct
|
15
|
+
# Currently we use open struct because this gives us an object representing the JSON
|
16
|
+
# with accessor style methods.
|
17
|
+
Style/OpenStructUse:
|
18
|
+
Enabled: false
|
19
|
+
|
14
20
|
Metrics/BlockLength:
|
15
21
|
Exclude:
|
16
22
|
- '**/*.gemspec'
|
@@ -21,3 +27,6 @@ Metrics/MethodLength:
|
|
21
27
|
Max: 20
|
22
28
|
Exclude:
|
23
29
|
- 'spec/smartcar/helpers/auth_helper.rb'
|
30
|
+
|
31
|
+
Metrics/ClassLength:
|
32
|
+
Max: 200
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
smartcar (3.0
|
4
|
+
smartcar (3.2.0)
|
5
5
|
oauth2 (~> 1.4)
|
6
6
|
recursive-open-struct (~> 1.1.3)
|
7
7
|
|
@@ -11,58 +11,42 @@ GEM
|
|
11
11
|
addressable (2.8.0)
|
12
12
|
public_suffix (>= 2.0.2, < 5.0)
|
13
13
|
ast (2.4.2)
|
14
|
-
backport (1.
|
14
|
+
backport (1.2.0)
|
15
15
|
byebug (11.1.3)
|
16
|
-
childprocess (
|
16
|
+
childprocess (4.1.0)
|
17
17
|
codecov (0.5.2)
|
18
18
|
simplecov (>= 0.15, < 0.22)
|
19
19
|
crack (0.4.5)
|
20
20
|
rexml
|
21
|
-
diff-lcs (1.
|
21
|
+
diff-lcs (1.5.0)
|
22
22
|
docile (1.4.0)
|
23
|
-
faraday (
|
24
|
-
faraday-
|
25
|
-
faraday-em_synchrony (~> 1.0)
|
26
|
-
faraday-excon (~> 1.1)
|
27
|
-
faraday-httpclient (~> 1.0.1)
|
28
|
-
faraday-net_http (~> 1.0)
|
29
|
-
faraday-net_http_persistent (~> 1.1)
|
30
|
-
faraday-patron (~> 1.0)
|
31
|
-
faraday-rack (~> 1.0)
|
32
|
-
multipart-post (>= 1.2, < 3)
|
23
|
+
faraday (2.2.0)
|
24
|
+
faraday-net_http (~> 2.0)
|
33
25
|
ruby2_keywords (>= 0.0.4)
|
34
|
-
faraday-
|
35
|
-
faraday-em_synchrony (1.0.0)
|
36
|
-
faraday-excon (1.1.0)
|
37
|
-
faraday-httpclient (1.0.1)
|
38
|
-
faraday-net_http (1.0.1)
|
39
|
-
faraday-net_http_persistent (1.2.0)
|
40
|
-
faraday-patron (1.0.0)
|
41
|
-
faraday-rack (1.0.0)
|
26
|
+
faraday-net_http (2.0.2)
|
42
27
|
hashdiff (1.0.1)
|
43
28
|
jwt (2.3.0)
|
44
29
|
multi_json (1.15.0)
|
45
30
|
multi_xml (0.6.0)
|
46
|
-
|
47
|
-
|
48
|
-
faraday (>= 0.8, < 2.0)
|
31
|
+
oauth2 (1.4.9)
|
32
|
+
faraday (>= 0.17.3, < 3.0)
|
49
33
|
jwt (>= 1.0, < 3.0)
|
50
34
|
multi_json (~> 1.3)
|
51
35
|
multi_xml (~> 0.5)
|
52
36
|
rack (>= 1.2, < 3)
|
53
|
-
parallel (1.
|
54
|
-
parser (3.0.
|
37
|
+
parallel (1.21.0)
|
38
|
+
parser (3.1.0.0)
|
55
39
|
ast (~> 2.4.1)
|
56
40
|
public_suffix (4.0.6)
|
57
41
|
rack (2.2.3)
|
58
|
-
rainbow (3.
|
42
|
+
rainbow (3.1.1)
|
59
43
|
rake (12.3.3)
|
60
|
-
readapt (1.3
|
61
|
-
backport (~> 1.
|
44
|
+
readapt (1.4.3)
|
45
|
+
backport (~> 1.2)
|
62
46
|
thor (~> 1.0)
|
63
47
|
recursive-open-struct (1.1.3)
|
64
48
|
redcarpet (3.5.1)
|
65
|
-
regexp_parser (2.
|
49
|
+
regexp_parser (2.2.0)
|
66
50
|
rexml (3.2.5)
|
67
51
|
rspec (3.10.0)
|
68
52
|
rspec-core (~> 3.10.0)
|
@@ -76,23 +60,24 @@ GEM
|
|
76
60
|
rspec-mocks (3.10.2)
|
77
61
|
diff-lcs (>= 1.2.0, < 2.0)
|
78
62
|
rspec-support (~> 3.10.0)
|
79
|
-
rspec-support (3.10.
|
80
|
-
rubocop (1.
|
63
|
+
rspec-support (3.10.3)
|
64
|
+
rubocop (1.24.1)
|
81
65
|
parallel (~> 1.10)
|
82
66
|
parser (>= 3.0.0.0)
|
83
67
|
rainbow (>= 2.2.2, < 4.0)
|
84
68
|
regexp_parser (>= 1.8, < 3.0)
|
85
69
|
rexml
|
86
|
-
rubocop-ast (>= 1.
|
70
|
+
rubocop-ast (>= 1.15.1, < 2.0)
|
87
71
|
ruby-progressbar (~> 1.7)
|
88
72
|
unicode-display_width (>= 1.4.0, < 3.0)
|
89
|
-
rubocop-ast (1.
|
73
|
+
rubocop-ast (1.15.1)
|
90
74
|
parser (>= 3.0.1.1)
|
91
75
|
ruby-progressbar (1.11.0)
|
92
76
|
ruby2_keywords (0.0.5)
|
93
|
-
rubyzip (2.3.
|
94
|
-
selenium-webdriver (
|
95
|
-
childprocess (>= 0.5, <
|
77
|
+
rubyzip (2.3.2)
|
78
|
+
selenium-webdriver (4.1.0)
|
79
|
+
childprocess (>= 0.5, < 5.0)
|
80
|
+
rexml (~> 3.2, >= 3.2.5)
|
96
81
|
rubyzip (>= 1.2.2)
|
97
82
|
simplecov (0.21.2)
|
98
83
|
docile (~> 1.1)
|
@@ -100,15 +85,16 @@ GEM
|
|
100
85
|
simplecov_json_formatter (~> 0.1)
|
101
86
|
simplecov-html (0.12.3)
|
102
87
|
simplecov_json_formatter (0.1.3)
|
103
|
-
thor (1.1
|
104
|
-
unicode-display_width (2.
|
105
|
-
webmock (3.
|
106
|
-
addressable (>= 2.
|
88
|
+
thor (1.2.1)
|
89
|
+
unicode-display_width (2.1.0)
|
90
|
+
webmock (3.14.0)
|
91
|
+
addressable (>= 2.8.0)
|
107
92
|
crack (>= 0.3.2)
|
108
93
|
hashdiff (>= 0.4.0, < 2.0.0)
|
109
94
|
|
110
95
|
PLATFORMS
|
111
96
|
ruby
|
97
|
+
x86_64-linux
|
112
98
|
|
113
99
|
DEPENDENCIES
|
114
100
|
bundler (~> 2.0)
|
@@ -119,9 +105,9 @@ DEPENDENCIES
|
|
119
105
|
redcarpet (~> 3.5.0)
|
120
106
|
rspec (~> 3.0)
|
121
107
|
rubocop (~> 1.12)
|
122
|
-
selenium-webdriver (~>
|
108
|
+
selenium-webdriver (~> 4.1.0)
|
123
109
|
smartcar!
|
124
110
|
webmock (~> 3.13)
|
125
111
|
|
126
112
|
BUNDLED WITH
|
127
|
-
2.1
|
113
|
+
2.3.1
|
data/README.md
CHANGED
@@ -116,6 +116,32 @@ Example Usage for oAuth -
|
|
116
116
|
# get a new token or use .
|
117
117
|
```
|
118
118
|
|
119
|
+
## Advanced configuration
|
120
|
+
|
121
|
+
This SDK uses the [Faraday HTTP client library](https://lostisland.github.io/faraday/) which supports extensive customization through the use of middleware. If you need to customize the behavior of HTTP request/response processing, you can provide your own instance of Faraday::Connection to most methods in this library.
|
122
|
+
|
123
|
+
**Important:** If you provide your own Faraday connection, you are responsible for configuring all HTTP connection behavior, including timeouts! This SDK uses some custom timeouts internally to ensure best behavior by default, so unless you want to customize them you may want to replicate those timeouts.
|
124
|
+
|
125
|
+
Example of providing a custom Faraday connection to various methods:
|
126
|
+
```ruby
|
127
|
+
# Example Faraday connection that uses the Instrumentation middleware
|
128
|
+
service = Faraday::Connection.new(url: Smartcar::API_ORIGIN, request: { timeout: Smartcar::DEFAULT_REQUEST_TIMEOUT }) do |c|
|
129
|
+
c.request :instrumentation
|
130
|
+
end
|
131
|
+
|
132
|
+
# Passing the custom service to #get_vehicles
|
133
|
+
Smartcar.get_vehicles(token: token, options: { service: service })
|
134
|
+
|
135
|
+
# Passing the custom service to #get_user
|
136
|
+
Smartcar.get_user(token: token, options: { service: service })
|
137
|
+
|
138
|
+
# Passing the custom service to #get_compatibility
|
139
|
+
Smartcar.get_compatibility(vin: vin, scope: scope, options: { service: service })
|
140
|
+
|
141
|
+
# Passing the custom service into a Smartcar::Vehicle object
|
142
|
+
vehicle = Smartcar::Vehicle.new(token: token, id: id, options: { service: service })
|
143
|
+
```
|
144
|
+
|
119
145
|
## Development
|
120
146
|
|
121
147
|
To install this gem onto your local machine, run `bundle exec rake install`.
|
data/lib/smartcar/base.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'oauth2'
|
4
4
|
require 'base64'
|
5
|
+
require 'rbconfig'
|
5
6
|
module Smartcar
|
6
7
|
# The Base class for all of the other class.
|
7
8
|
# Let other classes inherit from here and put common methods here.
|
@@ -12,8 +13,6 @@ module Smartcar
|
|
12
13
|
class InvalidParameterValue < StandardError; end
|
13
14
|
# Constant for Basic auth type
|
14
15
|
BASIC = 'Basic'
|
15
|
-
# Number of seconds to wait for response
|
16
|
-
REQUEST_TIMEOUT = 310
|
17
16
|
|
18
17
|
attr_accessor :token, :error, :unit_system, :version, :auth_type
|
19
18
|
|
@@ -23,11 +22,15 @@ module Smartcar
|
|
23
22
|
# @param data [Hash] request body if needed.
|
24
23
|
#
|
25
24
|
# @return [Hash] The response Json parsed as a hash.
|
26
|
-
define_method verb do |path, data = nil|
|
25
|
+
define_method verb do |path, data = nil, headers = {}|
|
27
26
|
response = service.send(verb) do |request|
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
request_headers = {}
|
28
|
+
request_headers['Authorization'] = auth_type == BASIC ? "Basic #{token}" : "Bearer #{token}"
|
29
|
+
request_headers['sc-unit-system'] = unit_system if unit_system
|
30
|
+
request_headers['Content-Type'] = 'application/json'
|
31
|
+
request_headers['User-Agent'] =
|
32
|
+
"Smartcar/#{VERSION} (#{RbConfig::CONFIG['host_os']}; #{RbConfig::CONFIG['arch']}) Ruby v#{RUBY_VERSION}"
|
33
|
+
request.headers = request_headers.merge(headers)
|
31
34
|
complete_path = "/v#{version}#{path}"
|
32
35
|
if verb == :get
|
33
36
|
request.url complete_path, data
|
@@ -60,7 +63,10 @@ module Smartcar
|
|
60
63
|
#
|
61
64
|
# @return [OAuth2::AccessToken] An initialized AccessToken instance that acts as service client
|
62
65
|
def service
|
63
|
-
@service ||= Faraday.new(
|
66
|
+
@service ||= Faraday.new(
|
67
|
+
url: ENV['SMARTCAR_API_ORIGIN'] || API_ORIGIN,
|
68
|
+
request: { timeout: DEFAULT_REQUEST_TIMEOUT }
|
69
|
+
)
|
64
70
|
end
|
65
71
|
end
|
66
72
|
end
|
data/lib/smartcar/vehicle.rb
CHANGED
@@ -11,6 +11,7 @@ module Smartcar
|
|
11
11
|
# @attr [Hash] options
|
12
12
|
# @attr unit_system [String] Unit system to represent the data in, defaults to Imperial
|
13
13
|
# @attr version [String] API version to be used.
|
14
|
+
# @attr service [Faraday::Connection] An optional connection object to be used for requests.
|
14
15
|
class Vehicle < Base
|
15
16
|
attr_reader :id
|
16
17
|
|
@@ -69,12 +70,13 @@ module Smartcar
|
|
69
70
|
}, skip: true }
|
70
71
|
}.freeze
|
71
72
|
|
72
|
-
def initialize(token:, id:, options: {
|
73
|
+
def initialize(token:, id:, options: {})
|
73
74
|
super
|
74
75
|
@token = token
|
75
76
|
@id = id
|
76
|
-
@unit_system = options[:unit_system]
|
77
|
-
@version = options[:version]
|
77
|
+
@unit_system = options[:unit_system] || METRIC
|
78
|
+
@version = options[:version] || Smartcar.get_api_version
|
79
|
+
@service = options[:service]
|
78
80
|
|
79
81
|
raise InvalidParameterValue.new, "Invalid Units provided : #{@unit_system}" unless UNITS.include?(@unit_system)
|
80
82
|
raise InvalidParameterValue.new, 'Vehicle ID (id) is a required field' if id.nil?
|
@@ -201,7 +203,7 @@ module Smartcar
|
|
201
203
|
#
|
202
204
|
# @param webhook_id [String] Webhook id to subscribe to
|
203
205
|
#
|
204
|
-
# @return [OpenStruct]
|
206
|
+
# @return [OpenStruct] An object representing the JSON response and a meta attribute
|
205
207
|
# with the relevant items from response headers.
|
206
208
|
def subscribe!(webhook_id)
|
207
209
|
response, headers = post(METHODS.dig(:subscribe!, :path).call(id, webhook_id), {})
|
@@ -234,5 +236,22 @@ module Smartcar
|
|
234
236
|
response, headers = post("/vehicles/#{id}/batch", request_body)
|
235
237
|
process_batch_response(response, headers)
|
236
238
|
end
|
239
|
+
|
240
|
+
# General purpose method to make requests to the Smartcar API - can be
|
241
|
+
# used to make requests to brand specific endpoints.
|
242
|
+
#
|
243
|
+
# @param method [String] The HTTP request method to use.
|
244
|
+
# @param path [String] The path to make the request to.
|
245
|
+
# @param body [Hash] The request body.
|
246
|
+
# @param headers [Hash] The headers to inlcude in the request.
|
247
|
+
#
|
248
|
+
# @return [OpenStruct] An object with a "body" attribute that contains the
|
249
|
+
# response body and a "meta" attribute with the relevant items from response headers.
|
250
|
+
def request(method, path, body = {}, headers = {})
|
251
|
+
path = "/vehicles/#{id}/#{path}"
|
252
|
+
raw_response, headers = send(method.downcase, path, body, headers)
|
253
|
+
meta = build_meta(headers)
|
254
|
+
json_to_ostruct({ body: raw_response, meta: meta })
|
255
|
+
end
|
237
256
|
end
|
238
257
|
end
|
data/lib/smartcar/version.rb
CHANGED
data/lib/smartcar.rb
CHANGED
@@ -31,6 +31,9 @@ module Smartcar
|
|
31
31
|
# Constant for units
|
32
32
|
UNITS = [IMPERIAL, METRIC].freeze
|
33
33
|
|
34
|
+
# Number of seconds to wait for responses
|
35
|
+
DEFAULT_REQUEST_TIMEOUT = 310
|
36
|
+
|
34
37
|
# Smartcar API version variable - defaulted to 2.0
|
35
38
|
@api_version = '2.0'
|
36
39
|
|
@@ -54,22 +57,22 @@ module Smartcar
|
|
54
57
|
|
55
58
|
# Module method Used to check compatiblity for VIN and scope
|
56
59
|
#
|
57
|
-
# API Documentation - https://smartcar.com/docs/api#
|
60
|
+
# API Documentation - https://smartcar.com/docs/api#compatibility-api. Options Hash
|
58
61
|
# @param vin [String] VIN of the vehicle to be checked
|
59
62
|
# @param scope [Array of Strings] - array of scopes
|
60
63
|
# @param country [String] An optional country code according to
|
61
|
-
# [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
|
62
|
-
#
|
63
|
-
# @param options [Hash] Other optional parameters including overrides
|
64
|
+
# [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Defaults to US.
|
65
|
+
# @param options [Hash] Other optional parameters including overrides (only valid for Smartcar API v1.0)
|
64
66
|
# @option options [String] :client_id Client ID that overrides ENV
|
65
67
|
# @option options [String] :client_secret Client Secret that overrides ENV
|
66
68
|
# @option options [String] :version API version to use, defaults to what is globally set
|
67
69
|
# @option options [Hash] :flags A hash of flag name string as key and a string or boolean value.
|
68
|
-
# @option options [Boolean] :test_mode
|
70
|
+
# @option options [Boolean] :test_mode Whether to use test mode or not.
|
69
71
|
# @option options [String] :test_mode_compatibility_level this is required argument while using
|
70
72
|
# test mode with a real vin. For more information refer to docs.
|
73
|
+
# @option options [Faraday::Connection] :service Optional connection object to be used for requests
|
71
74
|
#
|
72
|
-
# @return [OpenStruct] And object representing the JSON response mentioned in https://smartcar.com/docs/api#
|
75
|
+
# @return [OpenStruct] And object representing the JSON response mentioned in https://smartcar.com/docs/api#compatibility-api
|
73
76
|
# and a meta attribute with the relevant items from response headers.
|
74
77
|
def get_compatibility(vin:, scope:, country: 'US', options: {})
|
75
78
|
raise InvalidParameterValue.new, 'vin is a required field' if vin.nil?
|
@@ -78,17 +81,16 @@ module Smartcar
|
|
78
81
|
base_object = Base.new(
|
79
82
|
{
|
80
83
|
version: options[:version] || Smartcar.get_api_version,
|
81
|
-
auth_type: Base::BASIC
|
84
|
+
auth_type: Base::BASIC,
|
85
|
+
service: options[:service]
|
82
86
|
}
|
83
87
|
)
|
84
88
|
|
85
89
|
base_object.token = generate_basic_auth(options, base_object)
|
86
90
|
|
87
91
|
base_object.build_response(*base_object.fetch(
|
88
|
-
|
89
|
-
|
90
|
-
query_params: build_compatibility_params(vin, scope, country, options)
|
91
|
-
}
|
92
|
+
path: PATHS[:compatibility],
|
93
|
+
query_params: build_compatibility_params(vin, scope, country, options)
|
92
94
|
))
|
93
95
|
end
|
94
96
|
|
@@ -96,17 +98,21 @@ module Smartcar
|
|
96
98
|
#
|
97
99
|
# API Documentation - https://smartcar.com/docs/api#get-user
|
98
100
|
# @param token [String] Access token
|
101
|
+
# @param version [String] Optional API version to use, defaults to what is globally set
|
102
|
+
# @param options [Hash] Other optional parameters including overrides
|
103
|
+
# @option options [Faraday::Connection] :service Optional connection object to be used for requests
|
99
104
|
#
|
100
105
|
# @return [OpenStruct] And object representing the JSON response mentioned in https://smartcar.com/docs/api#get-user
|
101
106
|
# and a meta attribute with the relevant items from response headers.
|
102
|
-
def get_user(token:, version: Smartcar.get_api_version)
|
107
|
+
def get_user(token:, version: Smartcar.get_api_version, options: {})
|
103
108
|
base_object = Base.new(
|
104
109
|
{
|
105
110
|
token: token,
|
106
|
-
version: version
|
111
|
+
version: version,
|
112
|
+
service: options[:service]
|
107
113
|
}
|
108
114
|
)
|
109
|
-
base_object.build_response(*base_object.fetch(
|
115
|
+
base_object.build_response(*base_object.fetch(path: PATHS[:user]))
|
110
116
|
end
|
111
117
|
|
112
118
|
# Module method Returns a paged list of all vehicles connected to the application for the current authorized user.
|
@@ -114,21 +120,23 @@ module Smartcar
|
|
114
120
|
# API Documentation - https://smartcar.com/docs/api#get-all-vehicles
|
115
121
|
# @param token [String] - Access token
|
116
122
|
# @param paging [Hash] - Optional filter parameters (check documentation)
|
123
|
+
# @param version [String] Optional API version to use, defaults to what is globally set
|
124
|
+
# @param options [Hash] Other optional parameters including overrides
|
125
|
+
# @option options [Faraday::Connection] :service Optional connection object to be used for requests
|
117
126
|
#
|
118
127
|
# @return [OpenStruct] And object representing the JSON response mentioned in https://smartcar.com/docs/api#get-all-vehicles
|
119
128
|
# and a meta attribute with the relevant items from response headers.
|
120
|
-
def get_vehicles(token:, paging: {}, version: Smartcar.get_api_version)
|
129
|
+
def get_vehicles(token:, paging: {}, version: Smartcar.get_api_version, options: {})
|
121
130
|
base_object = Base.new(
|
122
131
|
{
|
123
132
|
token: token,
|
124
|
-
version: version
|
133
|
+
version: version,
|
134
|
+
service: options[:service]
|
125
135
|
}
|
126
136
|
)
|
127
137
|
base_object.build_response(*base_object.fetch(
|
128
|
-
|
129
|
-
|
130
|
-
query_params: paging
|
131
|
-
}
|
138
|
+
path: PATHS[:vehicles],
|
139
|
+
query_params: paging
|
132
140
|
))
|
133
141
|
end
|
134
142
|
|
data/ruby-sdk.gemspec
CHANGED
@@ -16,7 +16,8 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.license = 'MIT'
|
17
17
|
spec.metadata = {
|
18
18
|
'source_code_uri' => 'https://github.com/smartcar/ruby-sdk',
|
19
|
-
'documentation_uri' => 'https://www.rubydoc.info/gems/smartcar'
|
19
|
+
'documentation_uri' => 'https://www.rubydoc.info/gems/smartcar',
|
20
|
+
'rubygems_mfa_required' => 'true'
|
20
21
|
}
|
21
22
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
22
23
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
@@ -33,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
33
34
|
spec.add_development_dependency 'redcarpet', '~> 3.5.0'
|
34
35
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
35
36
|
spec.add_development_dependency 'rubocop', '~> 1.12'
|
36
|
-
spec.add_development_dependency 'selenium-webdriver', '~>
|
37
|
+
spec.add_development_dependency 'selenium-webdriver', '~> 4.1.0'
|
37
38
|
spec.add_development_dependency 'webmock', '~> 3.13'
|
38
39
|
spec.add_dependency 'oauth2', '~> 1.4'
|
39
40
|
spec.add_dependency 'recursive-open-struct', '~> 1.1.3'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartcar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ashwin Subramanian
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -134,14 +134,14 @@ dependencies:
|
|
134
134
|
requirements:
|
135
135
|
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version:
|
137
|
+
version: 4.1.0
|
138
138
|
type: :development
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version:
|
144
|
+
version: 4.1.0
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: webmock
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -219,6 +219,7 @@ licenses:
|
|
219
219
|
metadata:
|
220
220
|
source_code_uri: https://github.com/smartcar/ruby-sdk
|
221
221
|
documentation_uri: https://www.rubydoc.info/gems/smartcar
|
222
|
+
rubygems_mfa_required: 'true'
|
222
223
|
post_install_message:
|
223
224
|
rdoc_options: []
|
224
225
|
require_paths:
|