Class: Backup::Setup

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(trigger, procedures) ⇒ Setup

Sets the Trigger and All Available Procedures. Will not find a specific procedure if the “trigger” argument is set to false.



76
77
78
79
80
# File 'lib/backup.rb', line 76

def initialize(trigger, procedures)
  self.trigger    = trigger
  self.procedures = procedures
  self.procedure  = find_triggered_procedure unless trigger.eql?(false)
end

Instance Attribute Details

#procedureObject

Returns the value of attribute procedure.



72
73
74
# File 'lib/backup.rb', line 72

def procedure
  @procedure
end

#proceduresObject

Returns the value of attribute procedures.



72
73
74
# File 'lib/backup.rb', line 72

def procedures
  @procedures
end

#triggerObject

Returns the value of attribute trigger.



72
73
74
# File 'lib/backup.rb', line 72

def trigger
  @trigger
end

Instance Method Details

#find_triggered_procedureObject

Scans through all the backup settings and returns the backup setting that was specified in the “trigger” argument. If an non-existing trigger is specified, it will raise an error and display all the available triggers.



100
101
102
103
104
105
106
107
108
109
# File 'lib/backup.rb', line 100

def find_triggered_procedure
  procedures.each do |procedure|
    if procedure.trigger.eql?(trigger)
      return procedure
    end
  end
  available_triggers = procedures.map {|procedure| "- #{procedure.trigger}\n" }
  puts "Could not find a backup procedure with the trigger \"#{trigger}\". \nHere's a list of available triggers:\n#{available_triggers}"
  exit
end

#initialize_adapterObject

Initializes one of the few adapters and start the backup process



83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/backup.rb', line 83

def initialize_adapter
  case procedure.adapter_name.to_sym
    when :mysql       then Backup::Adapters::MySQL.new      trigger, procedure
    when :sqlite      then Backup::Adapters::SQLite.new     trigger, procedure
    when :postgresql  then Backup::Adapters::PostgreSQL.new trigger, procedure
    when :archive     then Backup::Adapters::Archive.new    trigger, procedure
    when :custom      then Backup::Adapters::Custom.new     trigger, procedure
    else
      puts "Unknown Adapter: \"#{procedure.adapter_name}\"."
      exit
  end
end