tesla 0.0.1 → 0.1.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.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +5 -0
  3. data/CHANGELOG.md +31 -0
  4. data/CONTRIBUTING.md +45 -0
  5. data/{LICENSE.txt → LICENSE.md} +1 -1
  6. data/README.md +366 -0
  7. data/SECURITY.md +38 -0
  8. data/lib/tesla/api/alert_endpoints.rb +35 -0
  9. data/lib/tesla/api/charging_endpoints.rb +115 -0
  10. data/lib/tesla/api/climate_endpoints.rb +180 -0
  11. data/lib/tesla/api/closure_endpoints.rb +142 -0
  12. data/lib/tesla/api/command_endpoints.rb +63 -0
  13. data/lib/tesla/api/media_endpoints.rb +114 -0
  14. data/lib/tesla/api/navigation_endpoints.rb +51 -0
  15. data/lib/tesla/api/oauth_endpoints.rb +118 -0
  16. data/lib/tesla/api/partner_endpoints.rb +62 -0
  17. data/lib/tesla/api/security_endpoints.rb +123 -0
  18. data/lib/tesla/api/software_endpoints.rb +38 -0
  19. data/lib/tesla/api/user_endpoints.rb +40 -0
  20. data/lib/tesla/api/vehicle_endpoints.rb +174 -0
  21. data/lib/tesla/api.rb +39 -0
  22. data/lib/tesla/authenticator.rb +33 -0
  23. data/lib/tesla/bearer_token_authenticator.rb +38 -0
  24. data/lib/tesla/certificate_options.rb +51 -0
  25. data/lib/tesla/charge_state.rb +111 -0
  26. data/lib/tesla/charging_site.rb +67 -0
  27. data/lib/tesla/client.rb +336 -0
  28. data/lib/tesla/client_credentials.rb +230 -0
  29. data/lib/tesla/climate_state.rb +116 -0
  30. data/lib/tesla/configuration.rb +483 -0
  31. data/lib/tesla/connection.rb +361 -0
  32. data/lib/tesla/connection_pool.rb +186 -0
  33. data/lib/tesla/deep_copy.rb +41 -0
  34. data/lib/tesla/drive_state.rb +80 -0
  35. data/lib/tesla/errors/bad_gateway.rb +9 -0
  36. data/lib/tesla/errors/bad_request.rb +9 -0
  37. data/lib/tesla/errors/client_error.rb +9 -0
  38. data/lib/tesla/errors/command_failed.rb +42 -0
  39. data/lib/tesla/errors/device_unexpected_response.rb +12 -0
  40. data/lib/tesla/errors/error.rb +7 -0
  41. data/lib/tesla/errors/forbidden.rb +14 -0
  42. data/lib/tesla/errors/gateway_timeout.rb +9 -0
  43. data/lib/tesla/errors/http_error.rb +89 -0
  44. data/lib/tesla/errors/internal_server_error.rb +9 -0
  45. data/lib/tesla/errors/invalid_response.rb +33 -0
  46. data/lib/tesla/errors/locked.rb +12 -0
  47. data/lib/tesla/errors/method_not_allowed.rb +9 -0
  48. data/lib/tesla/errors/misdirected_request.rb +13 -0
  49. data/lib/tesla/errors/network_error.rb +30 -0
  50. data/lib/tesla/errors/not_acceptable.rb +9 -0
  51. data/lib/tesla/errors/not_found.rb +9 -0
  52. data/lib/tesla/errors/oauth_error.rb +53 -0
  53. data/lib/tesla/errors/payment_required.rb +12 -0
  54. data/lib/tesla/errors/precondition_failed.rb +13 -0
  55. data/lib/tesla/errors/request_timeout.rb +13 -0
  56. data/lib/tesla/errors/server_error.rb +9 -0
  57. data/lib/tesla/errors/service_unavailable.rb +9 -0
  58. data/lib/tesla/errors/too_many_redirects.rb +9 -0
  59. data/lib/tesla/errors/too_many_requests.rb +9 -0
  60. data/lib/tesla/errors/unauthorized.rb +9 -0
  61. data/lib/tesla/errors/unavailable_for_legal_reasons.rb +12 -0
  62. data/lib/tesla/errors/unprocessable_content.rb +12 -0
  63. data/lib/tesla/errors/vehicle_asleep.rb +32 -0
  64. data/lib/tesla/gui_settings.rb +60 -0
  65. data/lib/tesla/idempotence.rb +30 -0
  66. data/lib/tesla/identifiers.rb +27 -0
  67. data/lib/tesla/json_parsing.rb +38 -0
  68. data/lib/tesla/nearby_charging_sites.rb +35 -0
  69. data/lib/tesla/path_escaping.rb +30 -0
  70. data/lib/tesla/redacted_output.rb +161 -0
  71. data/lib/tesla/redirect_handler.rb +196 -0
  72. data/lib/tesla/region.rb +27 -0
  73. data/lib/tesla/request_builder.rb +138 -0
  74. data/lib/tesla/resource.rb +403 -0
  75. data/lib/tesla/response_parser.rb +92 -0
  76. data/lib/tesla/retry_after.rb +34 -0
  77. data/lib/tesla/retry_handler.rb +252 -0
  78. data/lib/tesla/settings.rb +115 -0
  79. data/lib/tesla/url_validation.rb +131 -0
  80. data/lib/tesla/user.rb +36 -0
  81. data/lib/tesla/vehicle.rb +90 -0
  82. data/lib/tesla/vehicle_config.rb +95 -0
  83. data/lib/tesla/vehicle_data.rb +67 -0
  84. data/lib/tesla/vehicle_state.rb +125 -0
  85. data/lib/tesla/version.rb +6 -0
  86. data/lib/tesla.rb +139 -0
  87. data/sig/manifest.yaml +10 -0
  88. data/sig/tesla.rbs +989 -0
  89. metadata +134 -118
  90. data/.document +0 -5
  91. data/.rvmrc +0 -1
  92. data/Gemfile +0 -13
  93. data/Gemfile.lock +0 -20
  94. data/README.rdoc +0 -19
  95. data/Rakefile +0 -47
  96. data/test/helper.rb +0 -19
  97. data/test/test_tesla.rb +0 -7
metadata CHANGED
@@ -1,132 +1,148 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: tesla
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 1
9
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
10
5
  platform: ruby
11
- authors:
12
- - Jesse Cooke
13
- autorequire:
6
+ authors:
7
+ - Erik Berlin
14
8
  bindir: bin
15
9
  cert_chain: []
16
-
17
- date: 2011-01-31 00:00:00 -08:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: minitest
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
31
- type: :development
32
- version_requirements: *id001
33
- - !ruby/object:Gem::Dependency
34
- name: yard
35
- prerelease: false
36
- requirement: &id002 !ruby/object:Gem::Requirement
37
- none: false
38
- requirements:
39
- - - ~>
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- - 6
44
- - 0
45
- version: 0.6.0
46
- type: :development
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: bundler
50
- prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ~>
55
- - !ruby/object:Gem::Version
56
- segments:
57
- - 1
58
- - 0
59
- - 0
60
- version: 1.0.0
61
- type: :development
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
64
- name: jeweler
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: simple_oauth
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - '='
17
+ - !ruby/object:Gem::Version
18
+ version: 1.0.1
19
+ type: :runtime
65
20
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
67
- none: false
68
- requirements:
69
- - - ~>
70
- - !ruby/object:Gem::Version
71
- segments:
72
- - 1
73
- - 5
74
- - 2
75
- version: 1.5.2
76
- type: :development
77
- version_requirements: *id004
78
- description: Some nice things to have when developing using MagLev
79
- email: jesse@jc00ke.com
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - '='
24
+ - !ruby/object:Gem::Version
25
+ version: 1.0.1
26
+ description: A client for the Tesla Fleet API that reads the state of a vehicle and
27
+ commands it, with immutable response objects, OAuth 2.0 token refresh, and retries
28
+ email:
29
+ - sferik@gmail.com
80
30
  executables: []
81
-
82
31
  extensions: []
83
-
84
- extra_rdoc_files:
85
- - LICENSE.txt
86
- - README.rdoc
87
- files:
88
- - .document
89
- - .rvmrc
90
- - Gemfile
91
- - Gemfile.lock
92
- - LICENSE.txt
93
- - README.rdoc
94
- - Rakefile
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".yardopts"
35
+ - CHANGELOG.md
36
+ - CONTRIBUTING.md
37
+ - LICENSE.md
38
+ - README.md
39
+ - SECURITY.md
95
40
  - lib/tesla.rb
96
- - test/helper.rb
97
- - test/test_tesla.rb
98
- has_rdoc: true
99
- homepage: http://github.com/jc00ke/tesla
100
- licenses:
41
+ - lib/tesla/api.rb
42
+ - lib/tesla/api/alert_endpoints.rb
43
+ - lib/tesla/api/charging_endpoints.rb
44
+ - lib/tesla/api/climate_endpoints.rb
45
+ - lib/tesla/api/closure_endpoints.rb
46
+ - lib/tesla/api/command_endpoints.rb
47
+ - lib/tesla/api/media_endpoints.rb
48
+ - lib/tesla/api/navigation_endpoints.rb
49
+ - lib/tesla/api/oauth_endpoints.rb
50
+ - lib/tesla/api/partner_endpoints.rb
51
+ - lib/tesla/api/security_endpoints.rb
52
+ - lib/tesla/api/software_endpoints.rb
53
+ - lib/tesla/api/user_endpoints.rb
54
+ - lib/tesla/api/vehicle_endpoints.rb
55
+ - lib/tesla/authenticator.rb
56
+ - lib/tesla/bearer_token_authenticator.rb
57
+ - lib/tesla/certificate_options.rb
58
+ - lib/tesla/charge_state.rb
59
+ - lib/tesla/charging_site.rb
60
+ - lib/tesla/client.rb
61
+ - lib/tesla/client_credentials.rb
62
+ - lib/tesla/climate_state.rb
63
+ - lib/tesla/configuration.rb
64
+ - lib/tesla/connection.rb
65
+ - lib/tesla/connection_pool.rb
66
+ - lib/tesla/deep_copy.rb
67
+ - lib/tesla/drive_state.rb
68
+ - lib/tesla/errors/bad_gateway.rb
69
+ - lib/tesla/errors/bad_request.rb
70
+ - lib/tesla/errors/client_error.rb
71
+ - lib/tesla/errors/command_failed.rb
72
+ - lib/tesla/errors/device_unexpected_response.rb
73
+ - lib/tesla/errors/error.rb
74
+ - lib/tesla/errors/forbidden.rb
75
+ - lib/tesla/errors/gateway_timeout.rb
76
+ - lib/tesla/errors/http_error.rb
77
+ - lib/tesla/errors/internal_server_error.rb
78
+ - lib/tesla/errors/invalid_response.rb
79
+ - lib/tesla/errors/locked.rb
80
+ - lib/tesla/errors/method_not_allowed.rb
81
+ - lib/tesla/errors/misdirected_request.rb
82
+ - lib/tesla/errors/network_error.rb
83
+ - lib/tesla/errors/not_acceptable.rb
84
+ - lib/tesla/errors/not_found.rb
85
+ - lib/tesla/errors/oauth_error.rb
86
+ - lib/tesla/errors/payment_required.rb
87
+ - lib/tesla/errors/precondition_failed.rb
88
+ - lib/tesla/errors/request_timeout.rb
89
+ - lib/tesla/errors/server_error.rb
90
+ - lib/tesla/errors/service_unavailable.rb
91
+ - lib/tesla/errors/too_many_redirects.rb
92
+ - lib/tesla/errors/too_many_requests.rb
93
+ - lib/tesla/errors/unauthorized.rb
94
+ - lib/tesla/errors/unavailable_for_legal_reasons.rb
95
+ - lib/tesla/errors/unprocessable_content.rb
96
+ - lib/tesla/errors/vehicle_asleep.rb
97
+ - lib/tesla/gui_settings.rb
98
+ - lib/tesla/idempotence.rb
99
+ - lib/tesla/identifiers.rb
100
+ - lib/tesla/json_parsing.rb
101
+ - lib/tesla/nearby_charging_sites.rb
102
+ - lib/tesla/path_escaping.rb
103
+ - lib/tesla/redacted_output.rb
104
+ - lib/tesla/redirect_handler.rb
105
+ - lib/tesla/region.rb
106
+ - lib/tesla/request_builder.rb
107
+ - lib/tesla/resource.rb
108
+ - lib/tesla/response_parser.rb
109
+ - lib/tesla/retry_after.rb
110
+ - lib/tesla/retry_handler.rb
111
+ - lib/tesla/settings.rb
112
+ - lib/tesla/url_validation.rb
113
+ - lib/tesla/user.rb
114
+ - lib/tesla/vehicle.rb
115
+ - lib/tesla/vehicle_config.rb
116
+ - lib/tesla/vehicle_data.rb
117
+ - lib/tesla/vehicle_state.rb
118
+ - lib/tesla/version.rb
119
+ - sig/manifest.yaml
120
+ - sig/tesla.rbs
121
+ homepage: https://github.com/sferik/tesla-ruby
122
+ licenses:
101
123
  - MIT
102
- post_install_message:
124
+ metadata:
125
+ allowed_push_host: https://rubygems.org
126
+ bug_tracker_uri: https://github.com/sferik/tesla-ruby/issues
127
+ changelog_uri: https://github.com/sferik/tesla-ruby/blob/main/CHANGELOG.md
128
+ documentation_uri: https://rubydoc.info/gems/tesla/
129
+ rubygems_mfa_required: 'true'
130
+ source_code_uri: https://github.com/sferik/tesla-ruby
103
131
  rdoc_options: []
104
-
105
- require_paths:
132
+ require_paths:
106
133
  - lib
107
- required_ruby_version: !ruby/object:Gem::Requirement
108
- none: false
109
- requirements:
134
+ required_ruby_version: !ruby/object:Gem::Requirement
135
+ requirements:
110
136
  - - ">="
111
- - !ruby/object:Gem::Version
112
- segments:
113
- - 0
114
- version: "0"
115
- required_rubygems_version: !ruby/object:Gem::Requirement
116
- none: false
117
- requirements:
137
+ - !ruby/object:Gem::Version
138
+ version: 3.4.0
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ requirements:
118
141
  - - ">="
119
- - !ruby/object:Gem::Version
120
- segments:
121
- - 0
122
- version: "0"
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
123
144
  requirements: []
124
-
125
- rubyforge_project:
126
- rubygems_version: 1.3.7
127
- signing_key:
128
- specification_version: 3
129
- summary: Nice things when using MagLev
130
- test_files:
131
- - test/helper.rb
132
- - test/test_tesla.rb
145
+ rubygems_version: 4.0.20
146
+ specification_version: 4
147
+ summary: Ruby wrapper for the Tesla Fleet API
148
+ test_files: []
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use --create maglev-25127@tesla
data/Gemfile DELETED
@@ -1,13 +0,0 @@
1
- source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
-
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
8
- group :development do
9
- gem "minitest", ">= 0"
10
- gem "yard", "~> 0.6.0"
11
- gem "bundler", "~> 1.0.0"
12
- gem "jeweler", "~> 1.5.2"
13
- end
data/Gemfile.lock DELETED
@@ -1,20 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- git (1.2.5)
5
- jeweler (1.5.2)
6
- bundler (~> 1.0.0)
7
- git (>= 1.2.5)
8
- rake
9
- minitest (2.0.2)
10
- rake (0.8.7)
11
- yard (0.6.4)
12
-
13
- PLATFORMS
14
- ruby
15
-
16
- DEPENDENCIES
17
- bundler (~> 1.0.0)
18
- jeweler (~> 1.5.2)
19
- minitest
20
- yard (~> 0.6.0)
data/README.rdoc DELETED
@@ -1,19 +0,0 @@
1
- = tesla
2
-
3
- Description goes here.
4
-
5
- == Contributing to tesla
6
-
7
- * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
8
- * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
9
- * Fork the project
10
- * Start a feature/bugfix branch
11
- * Commit and push until you are happy with your contribution
12
- * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
- * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
-
15
- == Copyright
16
-
17
- Copyright (c) 2011 Jesse Cooke. See LICENSE.txt for
18
- further details.
19
-
data/Rakefile DELETED
@@ -1,47 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'rake'
11
-
12
- require 'jeweler'
13
- Jeweler::Tasks.new do |gem|
14
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
- gem.name = "tesla"
16
- gem.homepage = "http://github.com/jc00ke/tesla"
17
- gem.license = "MIT"
18
- gem.summary = %Q{TODO: one-line summary of your gem}
19
- gem.description = %Q{TODO: longer description of your gem}
20
- gem.email = "jesse@jc00ke.com"
21
- gem.authors = ["Jesse Cooke"]
22
- # Include your dependencies below. Runtime dependencies are required when using your gem,
23
- # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
- # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
- # gem.add_development_dependency 'rspec', '> 1.2.3'
26
- end
27
- Jeweler::RubygemsDotOrgTasks.new
28
-
29
- require 'rake/testtask'
30
- Rake::TestTask.new(:test) do |test|
31
- test.libs << 'lib' << 'test'
32
- test.pattern = 'test/**/test_*.rb'
33
- test.verbose = true
34
- end
35
-
36
- # Rcov requires C-ext, which aren't supported in MagLev yet
37
- #require 'rcov/rcovtask'
38
- #Rcov::RcovTask.new do |test|
39
- #test.libs << 'test'
40
- #test.pattern = 'test/**/test_*.rb'
41
- #test.verbose = true
42
- #end
43
-
44
- task :default => :test
45
-
46
- require 'yard'
47
- YARD::Rake::YardocTask.new
data/test/helper.rb DELETED
@@ -1,19 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'minitest/unit'
11
-
12
- $LOAD_PATH.unshift(File.dirname(__FILE__))
13
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
- require 'tesla'
15
-
16
- class MiniTest::Unit::TestCase
17
- end
18
-
19
- MiniTest::Unit.autorun
data/test/test_tesla.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'helper'
2
-
3
- class TestTesla < MiniTest::Unit::TestCase
4
- def test_something_for_real
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
7
- end