tesla-api 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,66 +3,66 @@ module TeslaAPI
3
3
  # Defines the current charge state of the vehicle
4
4
  class ChargeState < Data
5
5
  ##
6
- # :method: charging_state
7
- # Charging state ("Complete", "Charging")
6
+ # @method charging_state
7
+ # @return Charging state ("Complete", "Charging")
8
8
 
9
9
  ##
10
- # :method charging_to_max?
11
- # true if currently performing a range charge
10
+ # @method charging_to_max?
11
+ # @return [Boolean] true if currently performing a range charge
12
12
 
13
13
  ##
14
- # :method: battery_range_miles
15
- # Rated miles for the current charge
14
+ # @method battery_range_miles
15
+ # @return [Float] Rated miles for the current charge
16
16
 
17
17
  ##
18
- # :method: estimated_battry_range_miles
19
- # Range estimated from current driving
18
+ # @method estimated_battry_range_miles
19
+ # @return [Float] Range estimated from current driving
20
20
 
21
21
  ##
22
- # :method: ideal_battery_range_miles
23
- # Ideal range for the current charge
22
+ # @method ideal_battery_range_miles
23
+ # @return [Float] Ideal range for the current charge
24
24
 
25
25
  ##
26
- # :method: battery_percentage
27
- # Percentage of battery charge
26
+ # @method battery_percentage
27
+ # @return [Integer] Percentage of battery charge
28
28
 
29
29
  ##
30
- # :method: battery_current_flow
31
- # Current flowing into the battery
30
+ # @method battery_current_flow
31
+ # @return [Float] Current flowing into the battery
32
32
 
33
33
  ##
34
- # :method: charger_voltage
35
- # Current voltage being used to charge battery
34
+ # @method charger_voltage
35
+ # @return [Float] Current voltage being used to charge battery
36
36
 
37
37
  ##
38
- # :method: charger_pilot_amperage
39
- # Max amperage allowed by the charger
38
+ # @method charger_pilot_amperage
39
+ # @return [Integer] Max amperage allowed by the charger
40
40
 
41
41
  ##
42
- # :method: charger_actual_amperage
43
- # Current amperage being drawn into battery
42
+ # @method charger_actual_amperage
43
+ # @return [Integer] Current amperage being drawn into battery
44
44
 
45
45
  ##
46
- # :method: charger_power
47
- # Kilowatt of charger (rounded down)
46
+ # @method charger_power
47
+ # @return [Integer] Kilowatt of charger (rounded down)
48
48
 
49
49
  ##
50
- # :method: hours_to_full_charge
51
- # Hours remaining until the vehicle is fully charged
50
+ # @method hours_to_full_charge
51
+ # @return [Float] Hours remaining until the vehicle is fully charged
52
52
 
53
53
  ##
54
- # :method: charge_rate_miles_per_hour
55
- # Miles of range being added per hour
54
+ # @method charge_rate_miles_per_hour
55
+ # @return [Float] Miles of range being added per hour
56
56
 
57
57
  ##
58
- # :method: charge_port_open?
59
- # true if the charge port is open
58
+ # @method charge_port_open?
59
+ # @return [Boolean] charge port open state
60
60
 
61
61
  ##
62
- # :method: supercharging?
63
- # true if charging via a Tesla SuperCharger
62
+ # @method supercharging?
63
+ # @return [Boolean] charging via a Tesla SuperCharger
64
64
 
65
- def initialize(data) # :nodoc:
65
+ def initialize(data)
66
66
  ivar_from_data("charging_state", "charging_state", data)
67
67
  ivar_from_data("charging_to_max", "charge_to_max_range", data)
68
68
  ivar_from_data("battery_range_miles", "battery_range", data)
@@ -3,42 +3,42 @@ module TeslaAPI
3
3
  #
4
4
  class ClimateState < Data
5
5
  ##
6
- # :method: inside_temp_celcius
7
- # Temperature (celcius) inside the vehicle
6
+ # @method inside_temp_celcius
7
+ # @return [Float] Temperature (celcius) inside the vehicle
8
8
 
9
9
  ##
10
- # :method: outside_temp_celcius
11
- # Temperature (celcius) outside the vehicle
10
+ # @method outside_temp_celcius
11
+ # @return [Float] Temperature (celcius) outside the vehicle
12
12
 
13
13
  ##
14
- # :method: driver_temp_setting_celcius
15
- # Temperature (celcius) the driver has set
14
+ # @method driver_temp_setting_celcius
15
+ # @return [Float] Temperature (celcius) the driver has set
16
16
 
17
17
  ##
18
- # :method: passenger_temp_setting_celcius
19
- # Temperature (celcius) the passenger has set
18
+ # @method passenger_temp_setting_celcius
19
+ # @return [Float] Temperature (celcius) the passenger has set
20
20
 
21
21
  ##
22
- # :method: fan_speed
23
- # 0 to 6 (or nil)
22
+ # @method fan_speed
23
+ # @return [Integer] 0 to 6 (or nil)
24
24
 
25
25
  ##
26
- # :method: auto_conditioning_on?
27
- # true if auto air conditioning is on
26
+ # @method auto_conditioning_on?
27
+ # @return [Boolean] if auto air conditioning is on
28
28
 
29
29
  ##
30
- # :method: front_defroster_on?
31
- # true if the front defroster is on
30
+ # @method front_defroster_on?
31
+ # @return [Boolean] if the front defroster is on
32
32
 
33
33
  ##
34
- # :method: rear_defroster_on?
35
- # true if the rear defroster is on
34
+ # @method rear_defroster_on?
35
+ # @return [Boolean] if the rear defroster is on
36
36
 
37
37
  ##
38
- # :method: fan_on?
39
- # true if the fan is on
38
+ # @method fan_on?
39
+ # @return [Boolean] if the fan is on
40
40
 
41
- def initialize(data) # :nodoc:
41
+ def initialize(data)
42
42
  ivar_from_data("inside_temp_celcius", "inside_temp", data)
43
43
  ivar_from_data("outside_temp_celcius", "outside_temp", data)
44
44
  ivar_from_data("driver_temp_setting_celcius", "driver_temp_setting", data)
@@ -2,27 +2,27 @@ module TeslaAPI
2
2
  # Base class for all data responses from the HTTP API
3
3
  #
4
4
  # Defines an instance_variable? method for each instance_variable defined allowing for
5
- # methods such as __________?
5
+ # methods such as #charge_port_open?
6
6
  #
7
7
  # Also overrides #inspect to elimiante the back reference to the connection object
8
8
  class Data
9
- def method_missing(method_name, *args, &block) # :nodoc:
9
+ def method_missing(method_name, *args, &block)
10
10
  if has_query_ivar_method?(method_name)
11
11
  instance_variable_get(ivar_for_method_name(method_name))
12
12
  else
13
- super(symbol, *args, &block)
13
+ super
14
14
  end
15
15
  end
16
16
 
17
- def respond_to_missing?(method_name, include_private = false) # :nodoc:
17
+ def respond_to_missing?(method_name, include_private = false)
18
18
  has_query_ivar_method?(method_name) || super
19
19
  end
20
20
 
21
- def inspect # :nodoc:
21
+ def inspect
22
22
  "#<#{self.class.name}:0x#{self.object_id.to_s(16)} #{inspect_ivars}>"
23
23
  end
24
24
 
25
- def ivar_from_data(name, data_key, data) # :nodoc:
25
+ def ivar_from_data(name, data_key, data)
26
26
  instance_variable_set("@#{name}".to_sym, data[data_key])
27
27
 
28
28
  self.class.send(:attr_reader, name.to_sym)
@@ -30,21 +30,21 @@ module TeslaAPI
30
30
 
31
31
  protected
32
32
 
33
- def ivar_for_method_name(method_name) # :nodoc:
33
+ def ivar_for_method_name(method_name)
34
34
  "@#{method_name.to_s.gsub(/\?$/,"")}".to_sym
35
35
  end
36
36
 
37
- def has_query_ivar_method?(method_name) # :nodoc:
37
+ def has_query_ivar_method?(method_name)
38
38
  method = method_name.to_s
39
39
 
40
40
  method =~ /(.+)\?/ && instance_variables.include?(ivar_for_method_name(method_name))
41
41
  end
42
42
 
43
- def inspect_ivars # :nodoc:
43
+ def inspect_ivars
44
44
  ivars_for_inspect.map { |ivar| "#{ivar}=#{instance_variable_get(ivar)}" }.join(" ")
45
45
  end
46
46
 
47
- def ivars_for_inspect # :nodoc:
47
+ def ivars_for_inspect
48
48
  (instance_variables - [:@tesla])
49
49
  end
50
50
  end
@@ -5,26 +5,27 @@ module TeslaAPI
5
5
  attr_reader :gps_timestamp
6
6
 
7
7
  ##
8
- # :method: shift_state
8
+ # @method shift_state
9
9
  # Unknown
10
10
 
11
11
  ##
12
- # :method: speed
12
+ # @method speed
13
13
  # Vehicle speed (units?)
14
14
 
15
15
  ##
16
- # :method: latitude
17
- # Lattitude of vehicle
16
+ # @method latitude
17
+ # @return [Float] Lattitude of vehicle
18
18
 
19
19
  ##
20
- # :method: longitude
21
- # Longitude of vehicle
20
+ # @method longitude
21
+ # @return [Float] Longitude of vehicle
22
22
 
23
23
  ##
24
- # :method: heading
25
- # Compass heading (0 to 360) degrees
24
+ # @method heading
25
+ # @return [Integer] Compass heading (0 to 360) degrees
26
26
 
27
- def initialize(data) # :nodoc:
27
+ # initialize
28
+ def initialize(data)
28
29
  ivar_from_data("shift_state", "shift_state", data)
29
30
  ivar_from_data("speed", "speed", data)
30
31
  ivar_from_data("latitude", "latitude", data)
@@ -6,11 +6,11 @@ module TeslaAPI
6
6
  # JSON parsing error details
7
7
  attr_reader :error
8
8
 
9
- def initialize(error) # :nodoc:
9
+ def initialize(error)
10
10
  @error = error
11
11
  end
12
12
 
13
- def to_s # :nodoc:
13
+ def to_s
14
14
  error.to_s
15
15
  end
16
16
  end
@@ -28,11 +28,11 @@ module TeslaAPI
28
28
  # Response object from httpclient
29
29
  attr_reader :response
30
30
 
31
- def initialize(response) # :nodoc:
31
+ def initialize(response)
32
32
  @response = response
33
33
  end
34
34
 
35
- def to_s # :nodoc:
35
+ def to_s
36
36
  "Invalid Response: #{response.inspect}"
37
37
  end
38
38
  end
@@ -2,27 +2,27 @@ module TeslaAPI
2
2
  # Defines the current user settings for the vehicle's graphical display
3
3
  class GUISettings < Data
4
4
  ##
5
- # :method: gui_distance_units
6
- # Units ("mi/hr") for showing range
5
+ # @method gui_distance_units
6
+ # @return [String] Units ("mi/hr") for showing range
7
7
 
8
8
  ##
9
- # :method: gui_temperature_units
10
- # Units ("F", "C") for showing temperaturs
9
+ # @method gui_temperature_units
10
+ # @return [String] Units ("F", "C") for showing temperaturs
11
11
 
12
12
  ##
13
- # :method: gui_charge_rate_units
14
- # Units ("kW") for showing charge rage
13
+ # @method gui_charge_rate_units
14
+ # @return [String} Units ("kW") for showing charge rage
15
15
 
16
16
  ##
17
- # :method: gui_range_display
18
- # Units ("Rated", "Ideal") for showing range
17
+ # @method gui_range_display
18
+ # @return [String] Units ("Rated", "Ideal") for showing range
19
19
 
20
20
  # true if the UI show 24 hour time (e.g. 17:45)
21
21
  def gui_24_hour_time?
22
22
  @gui_24_hour_time
23
23
  end
24
24
 
25
- def initialize(data) # :nodoc:
25
+ def initialize(data)
26
26
  ivar_from_data("gui_distance_units", "gui_distance_units", data)
27
27
  ivar_from_data("gui_temperature_units", "gui_temperature_units", data)
28
28
  ivar_from_data("gui_charge_rate_units", "gui_charge_rate_units", data)
@@ -1,5 +1,5 @@
1
1
  module TeslaAPI
2
- module PrivateAPI # :nodoc:
2
+ module PrivateAPI
3
3
  def login(email, password)
4
4
  params = { "user_session[email]" => email,
5
5
  "user_session[password]" => password }
@@ -5,42 +5,42 @@ module TeslaAPI
5
5
  attr_reader :option_codes
6
6
 
7
7
  ##
8
- # :method: color
9
- # Should be car color but is always nil
8
+ # @method color
9
+ # @return [String] Should be car color but is always nil
10
10
 
11
11
  ##
12
- # :method: display_name
13
- # Only observed as nil
12
+ # @method display_name
13
+ # @return [String] Only observed as nil
14
14
 
15
15
  ##
16
- # :method: id
17
- # Vehicle ID used in other API calls
16
+ # @method id
17
+ # @return Vehicle ID used in other API calls
18
18
 
19
19
  ##
20
- # :method: user_id
21
- # Logged in user ID
20
+ # @method user_id
21
+ # @return [Integer] Logged in user ID
22
22
 
23
23
  ##
24
- # :method: vehicle_id
25
- # Vehicle ID used in streaming API
24
+ # @method vehicle_id
25
+ # @return [Integer] Vehicle ID used in streaming API
26
26
 
27
27
  ##
28
- # :method: vin
29
- # Vehicle Identification Number
28
+ # @method vin
29
+ # @return [String] Vehicle Identification Number
30
30
 
31
31
  ##
32
- # :method: tokens
33
- # API tokens (first is used for streaming API)
32
+ # @method tokens
33
+ # @return [Array] API tokens (first is used for streaming API)
34
34
 
35
35
  ##
36
- # :method: online_state
37
- # "online" if currently online with API (streaming?)
36
+ # @method online_state
37
+ # @return [String] "online" if currently online with API (streaming?)
38
38
 
39
39
  ##
40
- # :method: option_codes
41
- # Array of option codes defining how the vehicle is configured
40
+ # @method option_codes
41
+ # @return [Array] option codes defining how the vehicle is configured
42
42
 
43
- def initialize(tesla, data) # :nodoc:
43
+ def initialize(tesla, data)
44
44
  @tesla = tesla
45
45
 
46
46
  ivar_from_data("color", "color", data)
@@ -60,12 +60,12 @@ module TeslaAPI
60
60
  tesla.api_mobile_access?(self)
61
61
  end
62
62
 
63
- # Returns the option codes as human readable string
63
+ # @return [String] the option codes as human readable string
64
64
  def option_code_descriptions
65
65
  option_codes.map { |code| codes_to_description.fetch(code, code) }.join(", ")
66
66
  end
67
67
 
68
- # Returns the streaming data interface
68
+ # @return [Object] the streaming data interface
69
69
  def stream
70
70
  tesla.stream(self)
71
71
  end
@@ -154,38 +154,38 @@ module TeslaAPI
154
154
  #
155
155
  #################################
156
156
 
157
- # Returns the vehicles charge state
157
+ # @return [ChargeState] the vehicle's charge state
158
158
  def charge_state
159
159
  @charge_state ||= tesla.api_charge_state_for_vehicle(self)
160
160
  end
161
161
 
162
- # Returns the vehicle climate state
162
+ # @return [ClimateState] the vehicle's climate state
163
163
  def climate_state
164
164
  @climate_state || tesla.api_climate_state_for_vehicle(self)
165
165
  end
166
166
 
167
- # Returns the vehicle drive state
167
+ # @return [DriveState] the vehicle's drive state
168
168
  def drive_state
169
169
  @drive_state ||= tesla.api_drive_state_for_vehicle(self)
170
170
  end
171
171
 
172
- # Returns the vehicle gui settings
172
+ # @return [GUISettings] the vehicle's gui settings
173
173
  def gui_settings
174
174
  @gui_settings ||= tesla.api_gui_settings_for_vehicle(self)
175
175
  end
176
176
 
177
- # Returns the vehicle state
177
+ # @return [VehicleState] the vehicle's state
178
178
  def state
179
179
  @state ||= tesla.api_get_vehicle_state_for_vehicle(self)
180
180
  end
181
181
 
182
182
  private
183
183
 
184
- def tesla #:nodoc:
184
+ def tesla
185
185
  @tesla
186
186
  end
187
187
 
188
- def codes_to_description #:nodoc:
188
+ def codes_to_description
189
189
  {
190
190
  "MS01" => "base",
191
191
  "RENA" => "region_us",
@@ -2,73 +2,71 @@ module TeslaAPI
2
2
  # Defines the current vehicle state
3
3
  class VehicleState < Data
4
4
  ##
5
- # :method: firmware_version
6
- # Current firmware version
5
+ # @method firmware_version
6
+ # @return [String] Current firmware version
7
7
 
8
8
  ##
9
- # :method: sun_roof_installed?
10
- # true if the vehicle is configured with the panoramic sun roof
9
+ # @method sun_roof_installed?
10
+ # @return [Boolean] if the vehicle is configured with the panoramic sun roof
11
11
 
12
12
  ##
13
- # :method: sun_roof_state
14
- # Current state of the sun roof
15
- # Potential values:
16
- # unknown
17
- # moving
13
+ # @method sun_roof_state
14
+ # @return [String] Current state of the sun roof
15
+ # Potential values: unknown, moving
18
16
 
19
17
  ##
20
- # :method: sun_roof_percent_open
21
- # Percentage the sun roof is open
18
+ # @method sun_roof_percent_open
19
+ # @return [Integer] Percentage the sun roof is open
22
20
 
23
21
  ##
24
- # :method: driver_front_door_open?
25
- # true if the driver's side front door is open
22
+ # @method driver_front_door_open?
23
+ # @return [Boolean] if the driver's side front door is open
26
24
 
27
25
  ##
28
- # :method: driver_rear_door_open?
29
- # true if the driver's side rear door is open
26
+ # @method driver_rear_door_open?
27
+ # @return [Boolean] if the driver's side rear door is open
30
28
 
31
29
  ##
32
- # :method: passenger_front_door_open?
33
- # true if the passenger's side front door is open
30
+ # @method passenger_front_door_open?
31
+ # @return [Boolean] if the passenger's side front door is open
34
32
 
35
33
  ##
36
- # :method: passenger_rear_door_open
37
- # true if the passenger's side rear door is open
34
+ # @method passenger_rear_door_open
35
+ # @return [Boolean] if the passenger's side rear door is open
38
36
 
39
37
  ##
40
- # :method: front_trunk_open?
41
- # true if the front trunk (frunk) is open
38
+ # @method front_trunk_open?
39
+ # @return [Boolean] if the front trunk (frunk) is open
42
40
 
43
41
  ##
44
- # :method: rear_trunk_open?
45
- # true if the rear trunk is open
42
+ # method rear_trunk_open?
43
+ # @return [Boolean] if the rear trunk is open
46
44
 
47
45
  ##
48
- # :method: locked?
49
- # true if the doors are locked
46
+ # @method locked?
47
+ # @return [Boolean] if the doors are locked
50
48
 
51
49
  ##
52
- # :method: dark_rims?
53
- # true if configured with dark colored rims
50
+ # @method dark_rims?
51
+ # @return [Boolean] if configured with dark colored rims
54
52
 
55
53
  ##
56
- # :method: spoiler?
57
- # true if configured with a spoiler
54
+ # @method spoiler?
55
+ # @return [Boolean] if configured with a spoiler
58
56
 
59
57
  ##
60
- # :method: nineteen_inch_wheels?
61
- # true if configured with nineteen inch wheels
58
+ # @method nineteen_inch_wheels?
59
+ # @return [Boolean] if configured with nineteen inch wheels
62
60
 
63
61
  ##
64
- # :method: panoramic?
65
- # true if configured with a panoramic roof
62
+ # @method panoramic?
63
+ # @return [Boolean] configured with a panoramic roof
66
64
 
67
65
  ##
68
- # :method: perf?
69
- # true if a performance configured vehicle
66
+ # @method perf?
67
+ # @return [Boolean] if a performance configured vehicle
70
68
 
71
- def initialize(data) # :nodoc:
69
+ def initialize(data)
72
70
  ivar_from_data("firmware_version", "car_version", data)
73
71
  ivar_from_data("sun_roof_installed", "sun_roof_installed", data)
74
72
  ivar_from_data("sun_roof_state", "sun_roof_state", data)
@@ -1,4 +1,4 @@
1
- module TeslaAPI # :nodoc:
1
+ module TeslaAPI
2
2
  # Version Number
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tesla-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -133,3 +133,4 @@ test_files:
133
133
  - test/test_gui_settings.rb
134
134
  - test/test_vehicle.rb
135
135
  - test/test_vehicle_state.rb
136
+ has_rdoc: