class PoringBackup::Setting

Attributes

after_actions[R]
app_name[R]
before_actions[R]
created_at[R]
databases[R]
dir[R]
notifiers[R]
storages[R]
tmp_dir[R]

Public Class Methods

new(name=nil, &block) click to toggle source
# File lib/poring_backup/setting.rb, line 13
def initialize name=nil, &block
  @app_name = name
  @created_at = Time.now.strftime("%Y.%m.%d.%H.%M.%S")
  @before_actions = []
  @after_actions = []
  @dir = 'poring_backups'
  @tmp_dir = "tmp/poring_backups"
  @databases = []
  @storages = []
  @notifiers = []
  instance_eval(&block) if block_given?
end

Public Instance Methods

clear_tmp!() click to toggle source
# File lib/poring_backup/setting.rb, line 49
def clear_tmp!
  FileUtils.rm_rf(tmp_dir)
  PoringBackup.logger.debug "clear tmp directory"
end
database(model, &block) click to toggle source
# File lib/poring_backup/setting.rb, line 26
def database model, &block
  @databases << class_from_scope(Databases, model).new(self, &block)
end
notifier(model, &block) click to toggle source
# File lib/poring_backup/setting.rb, line 34
def notifier model, &block
  @notifiers << class_from_scope(Notifiers, model).new(self, &block)
end
perform!() click to toggle source
# File lib/poring_backup/setting.rb, line 38
def perform!
  PoringBackup.logger.info "PoringBackup Start..."
  before_backup
  backup!
  store!
  clear_tmp!
  after_backup
  notify!
  PoringBackup.logger.info "PoringBackup Done"
end
store_with(model, &block) click to toggle source
# File lib/poring_backup/setting.rb, line 30
def store_with model, &block
  @storages << class_from_scope(Storages, model).new(self, &block)
end

Private Instance Methods

backup!() click to toggle source
# File lib/poring_backup/setting.rb, line 59
def backup!
  PoringBackup.logger.info "--------- Backup ----------"
  databases.each(&:backup)
end
class_from_scope(scope, klass) click to toggle source
# File lib/poring_backup/setting.rb, line 55
def class_from_scope scope, klass
  "#{scope}::#{klass}".constantize
end
notify!() click to toggle source
# File lib/poring_backup/setting.rb, line 69
def notify!
  PoringBackup.logger.info "--------- Notifier --------"
  notifiers.each(&:notify!)
end
store!() click to toggle source
# File lib/poring_backup/setting.rb, line 64
def store!
  PoringBackup.logger.info "---------- Store ----------"
  storages.each(&:upload)
end