class Backupsss::Configuration
A class for managing the properties need for creating, uploading, and cleaning up backups in S3.
Public Class Methods
defaults()
click to toggle source
# File lib/backupsss/configuration.rb, line 5 def self.defaults { s3_bucket: ENV['S3_BUCKET'], s3_bucket_prefix: ENV['S3_BUCKET_PREFIX'], backup_src_dir: ENV['BACKUP_SRC_DIR'], backup_dest_dir: ENV['BACKUP_DEST_DIR'], backup_freq: ENV['BACKUP_FREQ'], aws_region: ENV['AWS_REGION'], remote_retention: ENV['REMOTE_RETENTION'].to_i } end
new(opts = {})
click to toggle source
# File lib/backupsss/configuration.rb, line 19 def initialize(opts = {}) attrs.each do |k, _| attr_val = validate_attrs(attrs.merge(opts), k) instance_variable_set("@#{k}", attr_val) end end
Private Instance Methods
attrs()
click to toggle source
# File lib/backupsss/configuration.rb, line 46 def attrs self.class.defaults end
missing_attr_error_msg(key)
click to toggle source
# File lib/backupsss/configuration.rb, line 34 def missing_attr_error_msg(key) [ "Missing '#{key}'", 'Args should be passed in or set in the env:', "#{key.upcase}=value backupsss" ].join("\n") end
throwout_nils(attrs)
click to toggle source
# File lib/backupsss/configuration.rb, line 42 def throwout_nils(attrs) attrs.reject { |k, v| v.nil? && k != :backup_freq } end
validate_attrs(attrs, attr_key)
click to toggle source
# File lib/backupsss/configuration.rb, line 28 def validate_attrs(attrs, attr_key) throwout_nils(attrs).fetch(attr_key) do raise ArgumentError, missing_attr_error_msg(attr_key) end end