smartcar 3.6.0 → 3.8.0
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +8 -0
- data/.travis.yml +2 -3
- data/Gemfile.lock +45 -43
- data/lib/smartcar/utils.rb +5 -1
- data/lib/smartcar/vehicle.rb +38 -0
- data/lib/smartcar/version.rb +1 -1
- data/ruby-sdk.gemspec +0 -1
- metadata +2 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fd4fcc86e7eb35c94b63f0546a0cac9795b8c9413e91da0631ddc04658e8d928
|
|
4
|
+
data.tar.gz: 414d4999f1919ef259a9eaee0733e4e23bf60f29a53d667684c41142c88f3f91
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 94512a886faac4382679adb6c6dc23464095e749907caab77c30914993cb12b084e1ea2377df9767b7bc855a14691204afb517764afa95242c4bd27575ef1695
|
|
7
|
+
data.tar.gz: 4f1649632ff635bf6d6a806761b33c9fbd180f572ee31b30a5584971c3a3bcbe9407b3778a3d3acbcf9d22ff7ca3fd7aedad95975735ae3877bcb52f044613ee
|
data/.rubocop.yml
CHANGED
|
@@ -3,6 +3,14 @@ AllCops:
|
|
|
3
3
|
NewCops: enable
|
|
4
4
|
SuggestExtensions: false
|
|
5
5
|
|
|
6
|
+
# Disabling for now. Will when updating to 3.1 and 3.2
|
|
7
|
+
Gemspec/DevelopmentDependencies:
|
|
8
|
+
Enabled: false
|
|
9
|
+
|
|
10
|
+
# Disabling for now. Will when updating to 3.1 and 3.2
|
|
11
|
+
Gemspec/RequiredRubyVersion:
|
|
12
|
+
Enabled: false
|
|
13
|
+
|
|
6
14
|
# Disabling ABC size for now as refactoring few places seems pointless for now
|
|
7
15
|
Metrics/AbcSize:
|
|
8
16
|
Enabled: false
|
data/.travis.yml
CHANGED
|
@@ -6,11 +6,10 @@ services:
|
|
|
6
6
|
addons:
|
|
7
7
|
firefox: latest
|
|
8
8
|
rvm:
|
|
9
|
-
- 2.6
|
|
10
9
|
- 2.7
|
|
11
10
|
- 3.0
|
|
12
11
|
before_install:
|
|
13
|
-
- gem install bundler -v 2.1
|
|
12
|
+
- gem install bundler -v 2.3.1
|
|
14
13
|
- wget https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
|
|
15
14
|
- mkdir geckodriver
|
|
16
15
|
- tar -xzf geckodriver-v0.26.0-linux64.tar.gz -C geckodriver
|
|
@@ -25,5 +24,5 @@ deploy:
|
|
|
25
24
|
on:
|
|
26
25
|
tags: true
|
|
27
26
|
branch: master
|
|
28
|
-
rvm: 2.
|
|
27
|
+
rvm: 2.7
|
|
29
28
|
skip_cleanup: 'true'
|
data/Gemfile.lock
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
smartcar (3.
|
|
4
|
+
smartcar (3.8.0)
|
|
5
5
|
oauth2 (~> 1.4)
|
|
6
6
|
recursive-open-struct (~> 1.1.3)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
addressable (2.8.
|
|
12
|
-
public_suffix (>= 2.0.2, <
|
|
11
|
+
addressable (2.8.5)
|
|
12
|
+
public_suffix (>= 2.0.2, < 6.0)
|
|
13
13
|
ast (2.4.2)
|
|
14
|
-
|
|
14
|
+
base64 (0.2.0)
|
|
15
15
|
byebug (11.1.3)
|
|
16
16
|
childprocess (4.1.0)
|
|
17
17
|
codecov (0.5.2)
|
|
@@ -20,59 +20,63 @@ GEM
|
|
|
20
20
|
rexml
|
|
21
21
|
diff-lcs (1.5.0)
|
|
22
22
|
docile (1.4.0)
|
|
23
|
-
faraday (2.
|
|
24
|
-
|
|
23
|
+
faraday (2.7.12)
|
|
24
|
+
base64
|
|
25
|
+
faraday-net_http (>= 2.0, < 3.1)
|
|
25
26
|
ruby2_keywords (>= 0.0.4)
|
|
26
|
-
faraday-net_http (
|
|
27
|
+
faraday-net_http (3.0.2)
|
|
27
28
|
hashdiff (1.0.1)
|
|
28
|
-
|
|
29
|
+
json (2.7.1)
|
|
30
|
+
jwt (2.7.1)
|
|
31
|
+
language_server-protocol (3.17.0.3)
|
|
29
32
|
multi_json (1.15.0)
|
|
30
33
|
multi_xml (0.6.0)
|
|
31
|
-
oauth2 (1.4.
|
|
34
|
+
oauth2 (1.4.11)
|
|
32
35
|
faraday (>= 0.17.3, < 3.0)
|
|
33
36
|
jwt (>= 1.0, < 3.0)
|
|
34
37
|
multi_json (~> 1.3)
|
|
35
38
|
multi_xml (~> 0.5)
|
|
36
|
-
rack (>= 1.2, <
|
|
37
|
-
parallel (1.
|
|
38
|
-
parser (3.
|
|
39
|
+
rack (>= 1.2, < 4)
|
|
40
|
+
parallel (1.23.0)
|
|
41
|
+
parser (3.2.2.4)
|
|
39
42
|
ast (~> 2.4.1)
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
racc
|
|
44
|
+
public_suffix (5.0.4)
|
|
45
|
+
racc (1.7.3)
|
|
46
|
+
rack (3.0.8)
|
|
42
47
|
rainbow (3.1.1)
|
|
43
48
|
rake (12.3.3)
|
|
44
|
-
readapt (1.4.3)
|
|
45
|
-
backport (~> 1.2)
|
|
46
|
-
thor (~> 1.0)
|
|
47
49
|
recursive-open-struct (1.1.3)
|
|
48
50
|
redcarpet (3.5.1)
|
|
49
|
-
regexp_parser (2.
|
|
50
|
-
rexml (3.2.
|
|
51
|
-
rspec (3.
|
|
52
|
-
rspec-core (~> 3.
|
|
53
|
-
rspec-expectations (~> 3.
|
|
54
|
-
rspec-mocks (~> 3.
|
|
55
|
-
rspec-core (3.
|
|
56
|
-
rspec-support (~> 3.
|
|
57
|
-
rspec-expectations (3.
|
|
51
|
+
regexp_parser (2.8.3)
|
|
52
|
+
rexml (3.2.6)
|
|
53
|
+
rspec (3.12.0)
|
|
54
|
+
rspec-core (~> 3.12.0)
|
|
55
|
+
rspec-expectations (~> 3.12.0)
|
|
56
|
+
rspec-mocks (~> 3.12.0)
|
|
57
|
+
rspec-core (3.12.2)
|
|
58
|
+
rspec-support (~> 3.12.0)
|
|
59
|
+
rspec-expectations (3.12.3)
|
|
58
60
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
59
|
-
rspec-support (~> 3.
|
|
60
|
-
rspec-mocks (3.
|
|
61
|
+
rspec-support (~> 3.12.0)
|
|
62
|
+
rspec-mocks (3.12.6)
|
|
61
63
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
62
|
-
rspec-support (~> 3.
|
|
63
|
-
rspec-support (3.
|
|
64
|
-
rubocop (1.
|
|
64
|
+
rspec-support (~> 3.12.0)
|
|
65
|
+
rspec-support (3.12.1)
|
|
66
|
+
rubocop (1.58.0)
|
|
67
|
+
json (~> 2.3)
|
|
68
|
+
language_server-protocol (>= 3.17.0)
|
|
65
69
|
parallel (~> 1.10)
|
|
66
|
-
parser (>= 3.
|
|
70
|
+
parser (>= 3.2.2.4)
|
|
67
71
|
rainbow (>= 2.2.2, < 4.0)
|
|
68
72
|
regexp_parser (>= 1.8, < 3.0)
|
|
69
|
-
rexml
|
|
70
|
-
rubocop-ast (>= 1.
|
|
73
|
+
rexml (>= 3.2.5, < 4.0)
|
|
74
|
+
rubocop-ast (>= 1.30.0, < 2.0)
|
|
71
75
|
ruby-progressbar (~> 1.7)
|
|
72
|
-
unicode-display_width (>=
|
|
73
|
-
rubocop-ast (1.
|
|
74
|
-
parser (>= 3.
|
|
75
|
-
ruby-progressbar (1.
|
|
76
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
|
77
|
+
rubocop-ast (1.30.0)
|
|
78
|
+
parser (>= 3.2.1.0)
|
|
79
|
+
ruby-progressbar (1.13.0)
|
|
76
80
|
ruby2_keywords (0.0.5)
|
|
77
81
|
rubyzip (2.3.2)
|
|
78
82
|
selenium-webdriver (4.1.0)
|
|
@@ -84,10 +88,9 @@ GEM
|
|
|
84
88
|
simplecov-html (~> 0.11)
|
|
85
89
|
simplecov_json_formatter (~> 0.1)
|
|
86
90
|
simplecov-html (0.12.3)
|
|
87
|
-
simplecov_json_formatter (0.1.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
webmock (3.14.0)
|
|
91
|
+
simplecov_json_formatter (0.1.4)
|
|
92
|
+
unicode-display_width (2.5.0)
|
|
93
|
+
webmock (3.19.1)
|
|
91
94
|
addressable (>= 2.8.0)
|
|
92
95
|
crack (>= 0.3.2)
|
|
93
96
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
@@ -101,7 +104,6 @@ DEPENDENCIES
|
|
|
101
104
|
byebug (~> 11.0)
|
|
102
105
|
codecov (~> 0.5.2)
|
|
103
106
|
rake (~> 12.3, >= 12.3.3)
|
|
104
|
-
readapt (~> 1.3)
|
|
105
107
|
redcarpet (~> 3.5.0)
|
|
106
108
|
rspec (~> 3.0)
|
|
107
109
|
rubocop (~> 1.12)
|
data/lib/smartcar/utils.rb
CHANGED
|
@@ -22,7 +22,7 @@ module Smartcar
|
|
|
22
22
|
config_name = "E2E_#{config_name}" if ENV['MODE'] == 'test'
|
|
23
23
|
raise Smartcar::ConfigNotFound, "Environment variable #{config_name} not found !" unless ENV[config_name]
|
|
24
24
|
|
|
25
|
-
ENV
|
|
25
|
+
ENV.fetch(config_name, nil)
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
# Converts a hash to RecursiveOpenStruct (a powered up OpenStruct object).
|
|
@@ -59,7 +59,9 @@ module Smartcar
|
|
|
59
59
|
|
|
60
60
|
def build_aliases(response, aliases)
|
|
61
61
|
(aliases || []).each do |original_name, alias_name|
|
|
62
|
+
# rubocop:disable Lint/SymbolConversion
|
|
62
63
|
response.send("#{alias_name}=".to_sym, response.send(original_name.to_sym))
|
|
64
|
+
# rubocop:enable Lint/SymbolConversion
|
|
63
65
|
end
|
|
64
66
|
|
|
65
67
|
response
|
|
@@ -125,6 +127,8 @@ module Smartcar
|
|
|
125
127
|
# Adding this because else it would become tires_pressure
|
|
126
128
|
return :tire_pressure if path == '/tires/pressure'
|
|
127
129
|
|
|
130
|
+
return :lock_status if path == '/security'
|
|
131
|
+
|
|
128
132
|
path.split('/').reject(&:empty?).join('_').to_sym
|
|
129
133
|
end
|
|
130
134
|
|
data/lib/smartcar/vehicle.rb
CHANGED
|
@@ -54,6 +54,13 @@ module Smartcar
|
|
|
54
54
|
vin: { path: proc { |id| "/vehicles/#{id}/vin" } },
|
|
55
55
|
get_charge_limit: { path: proc { |id| "/vehicles/#{id}/charge/limit" } },
|
|
56
56
|
disconnect!: { type: :delete, path: proc { |id| "/vehicles/#{id}/application" } },
|
|
57
|
+
lock_status: {
|
|
58
|
+
path: proc { |id| "/vehicles/#{id}/security" },
|
|
59
|
+
aliases: {
|
|
60
|
+
'isLocked' => 'is_locked',
|
|
61
|
+
'chargingPort' => 'charging_port'
|
|
62
|
+
}
|
|
63
|
+
},
|
|
57
64
|
lock!: { type: :post, path: proc { |id| "/vehicles/#{id}/security" }, body: { action: 'LOCK' } },
|
|
58
65
|
unlock!: { type: :post, path: proc { |id| "/vehicles/#{id}/security" }, body: { action: 'UNLOCK' } },
|
|
59
66
|
start_charge!: { type: :post, path: proc { |id| "/vehicles/#{id}/charge" }, body: { action: 'START' } },
|
|
@@ -64,6 +71,12 @@ module Smartcar
|
|
|
64
71
|
body: proc { |limit| { limit: limit } },
|
|
65
72
|
skip: true
|
|
66
73
|
},
|
|
74
|
+
send_destination!: {
|
|
75
|
+
type: :post,
|
|
76
|
+
path: proc { |id| "/vehicles/#{id}/navigation/destination" },
|
|
77
|
+
body: proc { |latitude, longitude| { latitude: latitude, longitude: longitude } },
|
|
78
|
+
skip: true
|
|
79
|
+
},
|
|
67
80
|
subscribe!: {
|
|
68
81
|
type: :post,
|
|
69
82
|
path: proc { |id, webhook_id| "/vehicles/#{id}/webhooks/#{webhook_id}" },
|
|
@@ -172,6 +185,17 @@ module Smartcar
|
|
|
172
185
|
# @return [OpenStruct] And object representing the JSON response mentioned in https://smartcar.com/docs/api#get-vin
|
|
173
186
|
# and a meta attribute with the relevant items from response headers.
|
|
174
187
|
|
|
188
|
+
# @!method lock_status()
|
|
189
|
+
# Returns the lock status for a vehicle and the open status of its doors, windows, storage units,
|
|
190
|
+
# sunroof and charging port where available. The open status array(s) will be empty if a vehicle
|
|
191
|
+
# has partial support. The request will error if lock status can not be retrieved from the vehicle or
|
|
192
|
+
# the brand is not supported.
|
|
193
|
+
#
|
|
194
|
+
# API Documentation https://smartcar.com/docs/api#get-security
|
|
195
|
+
#
|
|
196
|
+
# @return [OpenStruct] And object representing the JSON response mentioned in https://smartcar.com/docs/api#get-security
|
|
197
|
+
# and a meta attribute with the relevant items from response headers.
|
|
198
|
+
|
|
175
199
|
# NOTES :
|
|
176
200
|
# - We only generate the methods where there is no query string or additional options considering thats
|
|
177
201
|
# the majority, for all the ones that require parameters, write them separately.
|
|
@@ -248,6 +272,20 @@ module Smartcar
|
|
|
248
272
|
build_response(response, headers)
|
|
249
273
|
end
|
|
250
274
|
|
|
275
|
+
# Send coordinates to the vehicle's navigation system
|
|
276
|
+
#
|
|
277
|
+
# @param latitude [float] value representing the destination's latitude
|
|
278
|
+
# @param longitude [float] value representing the destination's longitude
|
|
279
|
+
|
|
280
|
+
# @return [OpenStruct] Meta attribute with the relevant items from response headers
|
|
281
|
+
def send_destination!(latitude, longitude)
|
|
282
|
+
method_config = METHODS[:send_destination!]
|
|
283
|
+
|
|
284
|
+
response, headers = post(method_config[:path].call(id), @query_params,
|
|
285
|
+
method_config[:body].call(latitude, longitude))
|
|
286
|
+
build_response(response, headers)
|
|
287
|
+
end
|
|
288
|
+
|
|
251
289
|
# Method to get batch requests.
|
|
252
290
|
# API - https://smartcar.com/docs/api#post-batch-request
|
|
253
291
|
# @param paths [Array] Array of paths as strings. Ex ['/battery', '/odometer']
|
data/lib/smartcar/version.rb
CHANGED
data/ruby-sdk.gemspec
CHANGED
|
@@ -30,7 +30,6 @@ Gem::Specification.new do |spec|
|
|
|
30
30
|
spec.add_development_dependency 'byebug', '~> 11.0'
|
|
31
31
|
spec.add_development_dependency 'codecov', '~> 0.5.2'
|
|
32
32
|
spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
|
|
33
|
-
spec.add_development_dependency 'readapt', '~> 1.3'
|
|
34
33
|
spec.add_development_dependency 'redcarpet', '~> 3.5.0'
|
|
35
34
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
36
35
|
spec.add_development_dependency 'rubocop', '~> 1.12'
|
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.
|
|
4
|
+
version: 3.8.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: 2023-
|
|
11
|
+
date: 2023-12-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -72,20 +72,6 @@ dependencies:
|
|
|
72
72
|
- - ">="
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
74
|
version: 12.3.3
|
|
75
|
-
- !ruby/object:Gem::Dependency
|
|
76
|
-
name: readapt
|
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
|
78
|
-
requirements:
|
|
79
|
-
- - "~>"
|
|
80
|
-
- !ruby/object:Gem::Version
|
|
81
|
-
version: '1.3'
|
|
82
|
-
type: :development
|
|
83
|
-
prerelease: false
|
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
-
requirements:
|
|
86
|
-
- - "~>"
|
|
87
|
-
- !ruby/object:Gem::Version
|
|
88
|
-
version: '1.3'
|
|
89
75
|
- !ruby/object:Gem::Dependency
|
|
90
76
|
name: redcarpet
|
|
91
77
|
requirement: !ruby/object:Gem::Requirement
|