Class: TwistlockControl::PersistedEntity

Inherits:
Entity
  • Object
show all
Defined in:
lib/twistlock_control/entity.rb

Overview

A persisted entity is an entity that has its own persistant storage repository.

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Entity

#==, #serialize

Class Method Details

.allObject



34
35
36
# File 'lib/twistlock_control/entity.rb', line 34

def self.all
	repository.all.map { |a| deserialize a }
end

.deserialize(attrs) ⇒ Object



25
26
27
28
# File 'lib/twistlock_control/entity.rb', line 25

def self.deserialize(attrs)
	return nil if attrs.nil?
	new(attrs)
end

.find_by_id(id) ⇒ Object



21
22
23
# File 'lib/twistlock_control/entity.rb', line 21

def self.find_by_id(id)
	deserialize repository.find_by_id(id)
end

.find_with_ids(ids) ⇒ Object



30
31
32
# File 'lib/twistlock_control/entity.rb', line 30

def self.find_with_ids(ids)
	repository.find_with_ids(ids).map { |a| deserialize a }
end

.inherited(subclass) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/twistlock_control/entity.rb', line 50

def self.inherited(subclass)
	subclass.class_exec do
		def self.repository(repository = nil)
			return @repository = repository if repository
			return @repository if @repository
			return superclass.repository if superclass.respond_to?(:repository)

			fail "#{name} has not defined a repository."
		end
	end
	super(subclass)
end

Instance Method Details

#removeObject



42
43
44
# File 'lib/twistlock_control/entity.rb', line 42

def remove
	repository.remove(id)
end

#repositoryObject



46
47
48
# File 'lib/twistlock_control/entity.rb', line 46

def repository
	self.class.repository
end

#saveObject



38
39
40
# File 'lib/twistlock_control/entity.rb', line 38

def save
	repository.save(serialize)
end