Class: ActiveSnapshotRails::SnapshotStorage

Inherits:
Object
  • Object
show all
Defined in:
lib/active_snapshot_rails/snapshot_storage.rb

Constant Summary collapse

SNAPSHOT_DIR =
"snapshots"

Class Method Summary collapse

Class Method Details

.save_snapshot(record, snapshot_data, name) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/active_snapshot_rails/snapshot_storage.rb', line 8

def self.save_snapshot(record, snapshot_data, name)
  model_name = record.class.name.downcase
  record_id = record.id
  timestamp = Time.now.strftime("%Y%m%d%H%M%S")
  file_name = "#{record_id}_#{timestamp}.json"

  dir_path = File.join(SNAPSHOT_DIR, model_name)
  FileUtils.mkdir_p(dir_path)

  file_path = File.join(dir_path, file_name)
  File.write(file_path, JSON.pretty_generate(snapshot_data))

  puts "Snapshot saved to #{file_path}"
end