class Symian::YAMLBackend

Public Class Methods

new(filename) click to toggle source
Calls superclass method Symian::MemoryBackend::new
# File lib/symian/trace_collector.rb, line 79
def initialize(filename)
  @filename = filename
  # if file exists and is non-empty, try to read its contents
  size = File.size?(@filename)
  if !size.nil? and size > 0
    hash = File.open(@filename) do |file|
      YAML.load(file)
    end
    TraceCollector::ATTRIBUTES.map(&:to_s).each do |attr|
      instance_variable_set("@#{attr}_storage", hash[attr])
    end
  else
    super()
  end
end

Public Instance Methods

save_and_close() click to toggle source
# File lib/symian/trace_collector.rb, line 95
def save_and_close
  hash = {}
  TraceCollector::ATTRIBUTES.map(&:to_s).each do |attr|
    hash[attr] = instance_variable_get("@#{attr}_storage")
  end
  File.open(@filename, 'w') do |file|
    YAML.dump(hash, file)
  end
end