Class: BackupManager

Inherits:
Object
  • Object
show all
Includes:
System
Defined in:
lib/backup_management/backup_manager.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from System

clean, db_credentials, hostname, prompt, run, tarzip_folders, unzip_file

Constructor Details

#initializeBackupManager

Returns a new instance of BackupManager.



9
10
11
# File 'lib/backup_management/backup_manager.rb', line 9

def initialize
  self.backups = Array.new
end

Instance Attribute Details

#backup_list_filenameObject

Returns the value of attribute backup_list_filename.



6
7
8
# File 'lib/backup_management/backup_manager.rb', line 6

def backup_list_filename
  @backup_list_filename
end

#backupsObject

Returns the value of attribute backups.



6
7
8
# File 'lib/backup_management/backup_manager.rb', line 6

def backups
  @backups
end

Class Method Details

.filenameObject



13
14
15
# File 'lib/backup_management/backup_manager.rb', line 13

def self.filename
  System.clean("#{System.db_credentials['database']}_ON_#{System.hostname}_backups") << ".yaml"
end

.local_filenameObject



17
18
19
# File 'lib/backup_management/backup_manager.rb', line 17

def self.local_filename
  "#{Rails.root.to_s}/lib/#{filename}"
end

Instance Method Details

#add_backup(backup) ⇒ Object



21
22
23
# File 'lib/backup_management/backup_manager.rb', line 21

def add_backup(backup)
  self.backups << backup
end

#delete_backup(backup) ⇒ Object



25
26
27
# File 'lib/backup_management/backup_manager.rb', line 25

def delete_backup(backup)
  self.backups.delete(backup)
end

#delete_backup_by_id(backup_id) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/backup_management/backup_manager.rb', line 29

def delete_backup_by_id(backup_id)
  self.backups.each { |backup|
    if backup.time == backup_id then
      self.backups.delete(backup)
    end
  }
  nil
end

#get_backup(backup_id) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/backup_management/backup_manager.rb', line 42

def get_backup(backup_id)
  self.backups.each { |backup|
    if backup.time == backup_id then
      return backup
    end
  }
  nil
end

#get_oldest_backupObject



38
39
40
# File 'lib/backup_management/backup_manager.rb', line 38

def get_oldest_backup
  self.backups.sort{|a,b| b.time <=> a.time}.last
end

#list_backups(details = ENV['details']) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/backup_management/backup_manager.rb', line 51

def list_backups(details = ENV['details'])
  puts "\n--- Backups by Date ---"
  count = 1
  self.backups.sort{|a,b| b.time <=> a.time}.each do |backup|
    puts "#{count}. #{backup.human_readable_time}, ID - #{backup.time}"
    if details then
      puts "   --- App -> #{backup.application_file}"
      puts "   --- DB -> #{backup.database_file}"
      puts "   --- Comment -> #{backup.comment}"
    end
    count = count.next
  end
  puts "-----------------------\n\n"
end

#number_of_backupsObject



66
67
68
# File 'lib/backup_management/backup_manager.rb', line 66

def number_of_backups
  backups.size
end