class ActiveRecord::Snapshot::List

Public Class Methods

add(version:, file:) click to toggle source
# File lib/active_record/snapshot/files/list.rb, line 13
def add(version:, file:)
  contents = File.read(path)
  File.open(path, "w") do |f|
    f.puts "#{version.to_i} #{File.basename(file)}"
    f.write contents
  end
end
download() click to toggle source
# File lib/active_record/snapshot/files/list.rb, line 5
def download
  s3.download_to(path)
end
filename() click to toggle source
# File lib/active_record/snapshot/files/list.rb, line 34
def filename
  "snapshot_list".freeze
end
get(version:) click to toggle source
# File lib/active_record/snapshot/files/list.rb, line 21
def get(version:)
  File.readlines(path).each do |line|
    version_str, filename = line.split(" ")
    return [version_str.to_i, filename] if version_str.to_i == version.to_i
  end
  []
end
last() click to toggle source
# File lib/active_record/snapshot/files/list.rb, line 29
def last
  version_str, filename = File.open(path, &:readline).split(" ")
  [version_str.to_i, filename]
end
path() click to toggle source
# File lib/active_record/snapshot/files/list.rb, line 38
def path
  config.store.local.join(filename).to_s.freeze
end
upload() click to toggle source
# File lib/active_record/snapshot/files/list.rb, line 9
def upload
  s3.upload(path)
end

Private Class Methods

config() click to toggle source
# File lib/active_record/snapshot/files/list.rb, line 48
def config
  ActiveRecord::Snapshot.config
end
s3() click to toggle source
# File lib/active_record/snapshot/files/list.rb, line 44
def s3
  S3.new(directory: config.s3.paths.snapshots)
end