class ActiveRecord::Snapshot::Snapshot
Attributes
s3[R]
Public Class Methods
new(filename = nil)
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 4 def initialize(filename = nil) @filename = clean(filename) || dump_file directory = named? ? paths.named_snapshots : paths.snapshots @s3 = S3.new(directory: directory) end
Public Instance Methods
compressed()
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 18 def compressed @filename + ".bz2" end
download()
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 30 def download s3.download_to(encrypted) end
dump()
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 14 def dump @filename end
encrypted()
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 22 def encrypted compressed + ".enc" end
named?()
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 10 def named? /\Asnapshot_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}(\..+)?\z/ !~ File.basename(@filename) end
upload()
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 26 def upload s3.upload(encrypted) end
Private Instance Methods
clean(filename)
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 42 def clean(filename) return unless filename basename = File.basename( filename.sub(/(\.sql)?(\.bz2)?(\.enc)?$/, ".sql") ) local_path.join(basename).to_s end
dump_file()
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 50 def dump_file local_path.join("snapshot_#{timestamp}.sql").to_s end
local_path()
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 54 def local_path ActiveRecord::Snapshot.config.store.local end
paths()
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 38 def paths ActiveRecord::Snapshot.config.s3.paths end
timestamp()
click to toggle source
# File lib/active_record/snapshot/files/snapshot.rb, line 58 def timestamp Time.zone.now.strftime("%Y-%m-%d_%H-%M-%S") end