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