class DailyWeeklyMonthly::Runner

Constants

DEFAULTS

Public Class Methods

new(backup_command, options = {}) click to toggle source
# File lib/daily_weekly_monthly/runner.rb, line 20
def initialize backup_command, options = {}
  @backup_command = backup_command
  @options = DEFAULTS.merge(options)
end

Public Instance Methods

call() click to toggle source
# File lib/daily_weekly_monthly/runner.rb, line 25
def call
  processor = Processor.new(backup, @options[:backups_dir], @options[:output_extension])
  processor.call("daily", keep: @options[:days_to_keep])
  processor.call("weekly", keep: @options[:weeks_to_keep]) if weekly_backup?
  processor.call("monthly", keep: @options[:months_to_keep]) if monthly_backup?
end

Private Instance Methods

backup() click to toggle source
# File lib/daily_weekly_monthly/runner.rb, line 42
def backup
  Downloader.new(@backup_command).call
rescue StandardError => e
  Notifier.new(@options[:smtp_server], @options[:smtp_port]).call(e, @options[:notify]) if @options[:notify]
  raise e
end
monthly_backup?() click to toggle source
# File lib/daily_weekly_monthly/runner.rb, line 38
def monthly_backup?
  Date.today.day == @options[:day_of_month]
end
weekly_backup?() click to toggle source
# File lib/daily_weekly_monthly/runner.rb, line 34
def weekly_backup?
  Date.today.wday == @options[:day_of_week]
end