Class: Memtf::Persistance

Inherits:
Object
  • Object
show all
Defined in:
lib/memtf/persistance.rb

Overview

Encapsulates the logic and mechanism for saving and loading raw memory data.

Constant Summary collapse

OUTPUT_DIR =

The directory where raw data is stored

"tmp/memtf"

Class Method Summary collapse

Class Method Details

.load(name, group) ⇒ Object

De-serialize group data from the filesystem.

Parameters:

  • name (String)
  • group (String)

Returns:

  • (Object)


31
32
33
34
# File 'lib/memtf/persistance.rb', line 31

def load(name, group)
  load_file = "#{group_dir(group)}/#{name}-#{Process.pid}.json"
  ::MultiJson.decode File.read(load_file)
end

.save(name, group, payload) ⇒ Object

Serialize group data to the filesystem.

Parameters:

  • name (String)
  • group (String)
  • payload (Object)


16
17
18
19
20
21
22
23
24
# File 'lib/memtf/persistance.rb', line 16

def save(name, group, payload)
  group_directory = group_dir(group)
  FileUtils.mkdir_p("#{group_directory}")

  save_file = "#{group_directory}/#{name}-#{Process.pid}.json"
  File.open(save_file, 'w+') do |f|
    f.print ::MultiJson.encode(payload)
  end
end