class MMS::Resource
Attributes
client[RW]
data[RW]
id[RW]
Public Class Methods
find(client, *arguments)
click to toggle source
@param [MMS::Client] client @param [Hash] arguments @return self
# 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_header()
click to toggle source
@return [Array<String>]
# File lib/mms/resource.rb, line 44 def self.table_header raise("`#{__method__}` is not implemented for `#{self.class.name}`") end
Private Class Methods
cache_key(id)
click to toggle source
# File lib/mms/resource.rb, line 88 def cache_key(id) "Class::#{name}:#{id}" end
Public Instance Methods
_from_hash(_data)
click to toggle source
@param [Hash] _data
# File lib/mms/resource.rb, line 53 def _from_hash(_data) raise("`#{__method__}` is not implemented for `#{self.class.name}`") end
_load(_id)
click to toggle source
# File lib/mms/resource.rb, line 48 def _load(_id) raise("`#{__method__}` is not implemented for `#{self.class.name}`") end
_to_hash()
click to toggle source
@return [Hash]
# File lib/mms/resource.rb, line 58 def _to_hash raise("`#{__method__}` is not implemented for `#{self.class.name}`") end
from_hash(data)
click to toggle source
@param [Hash] data
# File lib/mms/resource.rb, line 22 def from_hash(data) unless data.nil? @id = data['id'] _from_hash data end end
invalidate_cache()
click to toggle source
# File lib/mms/resource.rb, line 62 def invalidate_cache MMS::Cache.instance.delete(cache_key(@id)) end
table_row()
click to toggle source
@return [Array<String>]
# File lib/mms/resource.rb, line 34 def table_row raise("`#{__method__}` is not implemented for `#{self.class.name}`") end
table_section()
click to toggle source
@return [Array]
# File lib/mms/resource.rb, line 39 def table_section raise("`#{__method__}` is not implemented for `#{self.class.name}`") end
to_hash()
click to toggle source
# File lib/mms/resource.rb, line 29 def to_hash _to_hash end
Private Instance Methods
cache_key(id)
click to toggle source
# File lib/mms/resource.rb, line 83 def cache_key(id) "Class::#{self.class.name}:#{id}" end