Class: Leonidas::PersistenceLayer::Persister

Inherits:
Object
  • Object
show all
Defined in:
lib/leonidas/persistence_layer/persister.rb

Constant Summary collapse

@@persister =
nil
@@state_loader =
::Leonidas::PersistenceLayer::StateLoader.new

Class Method Summary collapse

Class Method Details

.add_state_builder!(builder) ⇒ Object



30
31
32
# File 'lib/leonidas/persistence_layer/persister.rb', line 30

def self.add_state_builder!(builder)
	@@state_loader.add_builder! builder	
end

.delete(app) ⇒ Object



47
48
49
# File 'lib/leonidas/persistence_layer/persister.rb', line 47

def self.delete(app)
	@@persister.delete app unless @@persister.nil?
end

.load(app_name) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/leonidas/persistence_layer/persister.rb', line 34

def self.load(app_name)
	app = @@persister.load app_name unless @@persister.nil?
	unless app.nil?
		@@state_loader.load_state app
		app.process_commands!
	end
	app
end

.persist(app) ⇒ Object



43
44
45
# File 'lib/leonidas/persistence_layer/persister.rb', line 43

def self.persist(app)
	@@persister.persist app unless @@persister.nil?
end

.set_app_persister!(persister) ⇒ Object

Raises:

  • (TypeError)


23
24
25
26
# File 'lib/leonidas/persistence_layer/persister.rb', line 23

def self.set_app_persister!(persister)
	raise TypeError, "Argument must include Leonidas::PersistenceLayer::AppPersister" unless persister.class < ::Leonidas::PersistenceLayer::AppPersister
	@@persister = persister
end