Class: MMS::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/mms/resource.rb

Defined Under Namespace

Classes: Alert, BackupConfig, Cluster, Group, Host, Metric, RestoreJob, Snapshot, SnapshotSchedule

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#client(client) ⇒ Object

Parameters:



10
11
12
# File 'lib/mms/resource.rb', line 10

def client
  @client
end

#data(data) ⇒ Object

Parameters:

  • data (Hash)


15
16
17
# File 'lib/mms/resource.rb', line 15

def data
  @data
end

#idObject

Returns the value of attribute id.



3
4
5
# File 'lib/mms/resource.rb', line 3

def id
  @id
end

Class Method Details

.cache_key(id) ⇒ Object



88
89
90
# File 'lib/mms/resource.rb', line 88

def cache_key(id)
  "Class::#{name}:#{id}"
end

.find(client, *arguments) ⇒ Object

Returns self.

Parameters:

Returns:

  • self



69
70
71
72
73
74
75
76
77
78
79
# File 'lib/mms/resource.rb', line 69

def self.find(client, *arguments)
  cache_key = self.cache_key(arguments.last)
  data = MMS::Cache.instance.get(cache_key)

  data = _find(client, *arguments) unless data

  resource = new
  resource.client(client)
  resource.data(data)
  resource
end

.table_headerArray<String>

Returns:

  • (Array<String>)


44
45
46
# File 'lib/mms/resource.rb', line 44

def self.table_header
  raise("`#{__method__}` is not implemented for `#{self.class.name}`")
end

Instance Method Details

#_from_hash(_data) ⇒ Object

Parameters:

  • _data (Hash)


53
54
55
# File 'lib/mms/resource.rb', line 53

def _from_hash(_data)
  raise("`#{__method__}` is not implemented for `#{self.class.name}`")
end

#_load(_id) ⇒ Object



48
49
50
# File 'lib/mms/resource.rb', line 48

def _load(_id)
  raise("`#{__method__}` is not implemented for `#{self.class.name}`")
end

#_to_hashHash

Returns:

  • (Hash)


58
59
60
# File 'lib/mms/resource.rb', line 58

def _to_hash
  raise("`#{__method__}` is not implemented for `#{self.class.name}`")
end

#from_hash(data) ⇒ Object

Parameters:

  • data (Hash)


22
23
24
25
26
27
# File 'lib/mms/resource.rb', line 22

def from_hash(data)
  unless data.nil?
    @id = data['id']
    _from_hash data
  end
end

#invalidate_cacheObject



62
63
64
# File 'lib/mms/resource.rb', line 62

def invalidate_cache
  MMS::Cache.instance.delete(cache_key(@id))
end

#table_rowArray<String>

Returns:

  • (Array<String>)


34
35
36
# File 'lib/mms/resource.rb', line 34

def table_row
  raise("`#{__method__}` is not implemented for `#{self.class.name}`")
end

#table_sectionArray

Returns:

  • (Array)


39
40
41
# File 'lib/mms/resource.rb', line 39

def table_section
  raise("`#{__method__}` is not implemented for `#{self.class.name}`")
end

#to_hashObject



29
30
31
# File 'lib/mms/resource.rb', line 29

def to_hash
  _to_hash
end