smartcar 3.0.1 → 3.0.5
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 +6 -9
- data/.travis.yml +1 -0
- data/Gemfile.lock +41 -29
- data/lib/smartcar/utils.rb +6 -3
- data/lib/smartcar/version.rb +1 -1
- data/lib/smartcar.rb +5 -9
- 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: b8dc25bb663d8c581e0c3f93b2ba5cb4f66c0a256dc740363f4feb3ccafe90c1
|
|
4
|
+
data.tar.gz: c71d59a150f691b68d1ed15143195808c0477bdf51f886583878b6eba8e35a89
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 70c6cc755ca8b163eb46a4ed98da557315fd0213b3464556fb68156f9436f2a548cba21dc0a71ced2bda1e934d27ddcd663beab09f8361e8b04536d7a36d770f
|
|
7
|
+
data.tar.gz: 2dfb31c7115cc455fee5efac58705be45f2eb4c0790ee4678a23ff4b43a02acbbf4d6952ecf85ec4136a3cd7af1855030e5c0fc3edeaae1ee2c0d18afe309303
|
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,12 +27,3 @@ Metrics/MethodLength:
|
|
|
21
27
|
Max: 20
|
|
22
28
|
Exclude:
|
|
23
29
|
- 'spec/smartcar/helpers/auth_helper.rb'
|
|
24
|
-
|
|
25
|
-
# Parameters in data from json API comes in as camelCase, ignoring those files to avoid snake_case enforcement
|
|
26
|
-
Naming/MethodName:
|
|
27
|
-
Exclude:
|
|
28
|
-
- 'lib/smartcar/battery.rb'
|
|
29
|
-
- 'lib/smartcar/charge.rb'
|
|
30
|
-
- 'lib/smartcar/engine_oil.rb'
|
|
31
|
-
- 'lib/smartcar/fuel.rb'
|
|
32
|
-
- 'lib/smartcar/tire_pressure.rb'
|
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.0.5)
|
|
5
5
|
oauth2 (~> 1.4)
|
|
6
6
|
recursive-open-struct (~> 1.1.3)
|
|
7
7
|
|
|
@@ -11,30 +11,40 @@ 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 (1.
|
|
23
|
+
faraday (1.9.3)
|
|
24
24
|
faraday-em_http (~> 1.0)
|
|
25
25
|
faraday-em_synchrony (~> 1.0)
|
|
26
26
|
faraday-excon (~> 1.1)
|
|
27
|
+
faraday-httpclient (~> 1.0)
|
|
28
|
+
faraday-multipart (~> 1.0)
|
|
27
29
|
faraday-net_http (~> 1.0)
|
|
28
|
-
faraday-net_http_persistent (~> 1.
|
|
29
|
-
|
|
30
|
+
faraday-net_http_persistent (~> 1.0)
|
|
31
|
+
faraday-patron (~> 1.0)
|
|
32
|
+
faraday-rack (~> 1.0)
|
|
33
|
+
faraday-retry (~> 1.0)
|
|
30
34
|
ruby2_keywords (>= 0.0.4)
|
|
31
35
|
faraday-em_http (1.0.0)
|
|
32
36
|
faraday-em_synchrony (1.0.0)
|
|
33
37
|
faraday-excon (1.1.0)
|
|
38
|
+
faraday-httpclient (1.0.1)
|
|
39
|
+
faraday-multipart (1.0.3)
|
|
40
|
+
multipart-post (>= 1.2, < 3)
|
|
34
41
|
faraday-net_http (1.0.1)
|
|
35
|
-
faraday-net_http_persistent (1.
|
|
42
|
+
faraday-net_http_persistent (1.2.0)
|
|
43
|
+
faraday-patron (1.0.0)
|
|
44
|
+
faraday-rack (1.0.0)
|
|
45
|
+
faraday-retry (1.0.3)
|
|
36
46
|
hashdiff (1.0.1)
|
|
37
|
-
jwt (2.
|
|
47
|
+
jwt (2.3.0)
|
|
38
48
|
multi_json (1.15.0)
|
|
39
49
|
multi_xml (0.6.0)
|
|
40
50
|
multipart-post (2.1.1)
|
|
@@ -44,19 +54,19 @@ GEM
|
|
|
44
54
|
multi_json (~> 1.3)
|
|
45
55
|
multi_xml (~> 0.5)
|
|
46
56
|
rack (>= 1.2, < 3)
|
|
47
|
-
parallel (1.
|
|
48
|
-
parser (3.0.
|
|
57
|
+
parallel (1.21.0)
|
|
58
|
+
parser (3.1.0.0)
|
|
49
59
|
ast (~> 2.4.1)
|
|
50
60
|
public_suffix (4.0.6)
|
|
51
61
|
rack (2.2.3)
|
|
52
|
-
rainbow (3.
|
|
62
|
+
rainbow (3.1.1)
|
|
53
63
|
rake (12.3.3)
|
|
54
|
-
readapt (1.3
|
|
55
|
-
backport (~> 1.
|
|
64
|
+
readapt (1.4.3)
|
|
65
|
+
backport (~> 1.2)
|
|
56
66
|
thor (~> 1.0)
|
|
57
67
|
recursive-open-struct (1.1.3)
|
|
58
68
|
redcarpet (3.5.1)
|
|
59
|
-
regexp_parser (2.
|
|
69
|
+
regexp_parser (2.2.0)
|
|
60
70
|
rexml (3.2.5)
|
|
61
71
|
rspec (3.10.0)
|
|
62
72
|
rspec-core (~> 3.10.0)
|
|
@@ -70,23 +80,24 @@ GEM
|
|
|
70
80
|
rspec-mocks (3.10.2)
|
|
71
81
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
72
82
|
rspec-support (~> 3.10.0)
|
|
73
|
-
rspec-support (3.10.
|
|
74
|
-
rubocop (1.
|
|
83
|
+
rspec-support (3.10.3)
|
|
84
|
+
rubocop (1.24.1)
|
|
75
85
|
parallel (~> 1.10)
|
|
76
86
|
parser (>= 3.0.0.0)
|
|
77
87
|
rainbow (>= 2.2.2, < 4.0)
|
|
78
88
|
regexp_parser (>= 1.8, < 3.0)
|
|
79
89
|
rexml
|
|
80
|
-
rubocop-ast (>= 1.
|
|
90
|
+
rubocop-ast (>= 1.15.1, < 2.0)
|
|
81
91
|
ruby-progressbar (~> 1.7)
|
|
82
92
|
unicode-display_width (>= 1.4.0, < 3.0)
|
|
83
|
-
rubocop-ast (1.
|
|
93
|
+
rubocop-ast (1.15.1)
|
|
84
94
|
parser (>= 3.0.1.1)
|
|
85
95
|
ruby-progressbar (1.11.0)
|
|
86
|
-
ruby2_keywords (0.0.
|
|
87
|
-
rubyzip (2.3.
|
|
88
|
-
selenium-webdriver (
|
|
89
|
-
childprocess (>= 0.5, <
|
|
96
|
+
ruby2_keywords (0.0.5)
|
|
97
|
+
rubyzip (2.3.2)
|
|
98
|
+
selenium-webdriver (4.1.0)
|
|
99
|
+
childprocess (>= 0.5, < 5.0)
|
|
100
|
+
rexml (~> 3.2, >= 3.2.5)
|
|
90
101
|
rubyzip (>= 1.2.2)
|
|
91
102
|
simplecov (0.21.2)
|
|
92
103
|
docile (~> 1.1)
|
|
@@ -94,15 +105,16 @@ GEM
|
|
|
94
105
|
simplecov_json_formatter (~> 0.1)
|
|
95
106
|
simplecov-html (0.12.3)
|
|
96
107
|
simplecov_json_formatter (0.1.3)
|
|
97
|
-
thor (1.1
|
|
98
|
-
unicode-display_width (2.
|
|
99
|
-
webmock (3.
|
|
100
|
-
addressable (>= 2.
|
|
108
|
+
thor (1.2.1)
|
|
109
|
+
unicode-display_width (2.1.0)
|
|
110
|
+
webmock (3.14.0)
|
|
111
|
+
addressable (>= 2.8.0)
|
|
101
112
|
crack (>= 0.3.2)
|
|
102
113
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
103
114
|
|
|
104
115
|
PLATFORMS
|
|
105
116
|
ruby
|
|
117
|
+
x86_64-linux
|
|
106
118
|
|
|
107
119
|
DEPENDENCIES
|
|
108
120
|
bundler (~> 2.0)
|
|
@@ -113,9 +125,9 @@ DEPENDENCIES
|
|
|
113
125
|
redcarpet (~> 3.5.0)
|
|
114
126
|
rspec (~> 3.0)
|
|
115
127
|
rubocop (~> 1.12)
|
|
116
|
-
selenium-webdriver (~>
|
|
128
|
+
selenium-webdriver (~> 4.1.0)
|
|
117
129
|
smartcar!
|
|
118
130
|
webmock (~> 3.13)
|
|
119
131
|
|
|
120
132
|
BUNDLED WITH
|
|
121
|
-
2.1
|
|
133
|
+
2.3.1
|
data/lib/smartcar/utils.rb
CHANGED
|
@@ -34,7 +34,7 @@ module Smartcar
|
|
|
34
34
|
#
|
|
35
35
|
# @return [RecursiveOpenStruct]
|
|
36
36
|
def json_to_ostruct(hash)
|
|
37
|
-
RecursiveOpenStruct.new(hash)
|
|
37
|
+
RecursiveOpenStruct.new(hash, recurse_over_arrays: true)
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def build_meta(headers)
|
|
@@ -100,9 +100,9 @@ module Smartcar
|
|
|
100
100
|
response_object = OpenStruct.new
|
|
101
101
|
response_body['responses'].each do |item|
|
|
102
102
|
attribute_name = convert_path_to_attribute(item['path'])
|
|
103
|
-
aliases = Vehicle::METHODS[attribute_name.to_sym][:aliases]
|
|
103
|
+
aliases = (Vehicle::METHODS[attribute_name.to_sym] || {})[:aliases]
|
|
104
104
|
# merging the top level request headers and separate headers for each item of batch
|
|
105
|
-
headers = response_headers.merge(item['headers'])
|
|
105
|
+
headers = response_headers.merge(item['headers'] || {})
|
|
106
106
|
response = if [200, 204].include?(item['code'])
|
|
107
107
|
build_aliases(build_response(item['body'], headers), aliases)
|
|
108
108
|
else
|
|
@@ -122,6 +122,9 @@ module Smartcar
|
|
|
122
122
|
def convert_path_to_attribute(path)
|
|
123
123
|
return :attributes if path == '/'
|
|
124
124
|
|
|
125
|
+
# Adding this because else it would become tires_pressure
|
|
126
|
+
return :tire_pressure if path == '/tires/pressure'
|
|
127
|
+
|
|
125
128
|
path.split('/').reject(&:empty?).join('_').to_sym
|
|
126
129
|
end
|
|
127
130
|
end
|
data/lib/smartcar/version.rb
CHANGED
data/lib/smartcar.rb
CHANGED
|
@@ -85,10 +85,8 @@ module Smartcar
|
|
|
85
85
|
base_object.token = generate_basic_auth(options, base_object)
|
|
86
86
|
|
|
87
87
|
base_object.build_response(*base_object.fetch(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
query_params: build_compatibility_params(vin, scope, country, options)
|
|
91
|
-
}
|
|
88
|
+
path: PATHS[:compatibility],
|
|
89
|
+
query_params: build_compatibility_params(vin, scope, country, options)
|
|
92
90
|
))
|
|
93
91
|
end
|
|
94
92
|
|
|
@@ -106,7 +104,7 @@ module Smartcar
|
|
|
106
104
|
version: version
|
|
107
105
|
}
|
|
108
106
|
)
|
|
109
|
-
base_object.build_response(*base_object.fetch(
|
|
107
|
+
base_object.build_response(*base_object.fetch(path: PATHS[:user]))
|
|
110
108
|
end
|
|
111
109
|
|
|
112
110
|
# Module method Returns a paged list of all vehicles connected to the application for the current authorized user.
|
|
@@ -125,10 +123,8 @@ module Smartcar
|
|
|
125
123
|
}
|
|
126
124
|
)
|
|
127
125
|
base_object.build_response(*base_object.fetch(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
query_params: paging
|
|
131
|
-
}
|
|
126
|
+
path: PATHS[:vehicles],
|
|
127
|
+
query_params: paging
|
|
132
128
|
))
|
|
133
129
|
end
|
|
134
130
|
|
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.0.5
|
|
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-01-19 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:
|