Module: UniverseCompiler::Entity::Persistence
- Included in:
- Base
- Defined in:
- lib/universe_compiler/entity/persistence.rb
Instance Attribute Summary collapse
-
#source_uri ⇒ Object
Returns the value of attribute source_uri.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#source_uri ⇒ Object
Returns the value of attribute source_uri.
8 9 10 |
# File 'lib/universe_compiler/entity/persistence.rb', line 8 def source_uri @source_uri end |
Class Method Details
.load(uri) ⇒ Object
10 11 12 13 14 |
# File 'lib/universe_compiler/entity/persistence.rb', line 10 def self.load(uri) entity = YAML.load_file uri entity.source_uri = uri entity end |
Instance Method Details
#delete ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/universe_compiler/entity/persistence.rb', line 33 def delete universe.delete self unless self.source_uri.nil? FileUtils.rm self.source_uri UniverseCompiler.logger.debug "Deleted '#{self.as_path}' (removed file '#{self.source_uri}'" end end |
#save(uri = source_uri, raise_error: true, force_save: false) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/universe_compiler/entity/persistence.rb', line 16 def save(uri = source_uri, raise_error: true, force_save: false) if force_save if valid? raise_error: false UniverseCompiler.logger.debug "Forcing '#{self.as_path}' save." else UniverseCompiler.logger.warn "Forcing '#{self.as_path}' save despite it is invalid !" end else valid? raise_error: raise_error end FileUtils.mkpath File.dirname(uri) File.write uri, to_yaml, mode: 'w' self.source_uri = uri UniverseCompiler.logger.debug "Saved '#{self.as_path}' to '#{uri}'" self end |