Class: MySolaredge::Response::AbstractResponse

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/my_solaredge/response/abstract_response.rb

Overview

Make response a bit easier to deal with in Ruby

Direct Known Subclasses

Energy, EnergyDetails, Overview, Power, Sites, TimeFrameEnergy

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw_response) ⇒ AbstractResponse

Returns a new instance of AbstractResponse.



15
16
17
18
# File 'lib/my_solaredge/response/abstract_response.rb', line 15

def initialize(raw_response)
  @raw_response = raw_response # responses are of the format {endpoint_name: { actual_data }}
  parse if ok?
end

Instance Attribute Details

#raw_responseObject (readonly)

Returns the value of attribute raw_response.



9
10
11
# File 'lib/my_solaredge/response/abstract_response.rb', line 9

def raw_response
  @raw_response
end

Instance Method Details

#ok?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/my_solaredge/response/abstract_response.rb', line 20

def ok?
  raw_response.ok?
end

#parseObject



24
25
26
# File 'lib/my_solaredge/response/abstract_response.rb', line 24

def parse
  @parsed_response = recursive_parse(useful_body_data)
end

#useful_body_dataObject



28
29
30
# File 'lib/my_solaredge/response/abstract_response.rb', line 28

def useful_body_data
  JSON.parse(raw_response.body).values.first
end