Class: Senec::Cloud::Dashboard

Inherits:
Object
  • Object
show all
Defined in:
lib/senec/cloud/dashboard.rb

Defined Under Namespace

Classes: Finder

Constant Summary collapse

AVAILABLE_VERSIONS =
%w[v1 v2].freeze
DEFAULT_VERSION =
'v1'.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection: nil, system_id: nil, data: nil) ⇒ Dashboard

Returns a new instance of Dashboard.

Raises:

  • (ArgumentError)


46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/senec/cloud/dashboard.rb', line 46

def initialize(connection: nil, system_id: nil, data: nil)
  raise ArgumentError unless connection.nil? ^ data.nil?

  @connection = connection
  @system_id = system_id

  # Useful for testing only
  @data = {
    'v1' => data,
    'v2' => data
  }
end

Instance Attribute Details

#system_idObject (readonly)

Returns the value of attribute system_id.



64
65
66
# File 'lib/senec/cloud/dashboard.rb', line 64

def system_id
  @system_id
end

Class Method Details

.[](connection) ⇒ Object



42
43
44
# File 'lib/senec/cloud/dashboard.rb', line 42

def self.[](connection)
  Finder.new(connection)
end

Instance Method Details

#data(version: DEFAULT_VERSION) ⇒ Object



59
60
61
62
# File 'lib/senec/cloud/dashboard.rb', line 59

def data(version: DEFAULT_VERSION)
  @data ||= {}
  @data[version] ||= fetch_data(version:)
end