module UniverseCompiler::Entity::Persistence

Attributes

source_uri[RW]

Public Class Methods

load(uri) click to toggle source
# File lib/universe_compiler/entity/persistence.rb, line 10
def self.load(uri)
  entity = YAML.load_file uri
  entity.source_uri = uri
  entity
end

Public Instance Methods

delete() click to toggle source
# 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) click to toggle source
# 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