Class: Backup::Setup

Inherits:
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.



95
96
97
98
99
# File 'lib/backup.rb', line 95

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.



91
92
93
# File 'lib/backup.rb', line 91

def procedure
  @procedure
end

#proceduresObject

Returns the value of attribute procedures.



91
92
93
# File 'lib/backup.rb', line 91

def procedures
  @procedures
end

#triggerObject

Returns the value of attribute trigger.



91
92
93
# File 'lib/backup.rb', line 91

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.



120
121
122
123
124
125
126
127
128
129
# File 'lib/backup.rb', line 120

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



102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/backup.rb', line 102

def initialize_adapter
  case procedure.adapter_name.to_sym
    when :mongo       then Backup::Adapters::MongoDB.new    trigger, procedure
    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