module DynaModel::Extensions::S3Backup

Public Instance Methods

backup_dyna_model_record_to_s3() click to toggle source
# File lib/dyna_model/extensions/s3_backup.rb, line 21
def backup_dyna_model_record_to_s3
  if DynaModel::Config.s3_backup_extension_enable_development || DynaModel::Config.s3_backup_extension_development_environments.include?(Rails.env)
    DynaModel::Config.logger.info "Skipping S3Backup for #{self.class} #{self.dynamo_db_guid} in development environment."
    return
  end
  if self.class.dyna_model_s3_backup_config
    if self.class.dyna_model_s3_backup_config[:after_save]
      self.class.dyna_model_s3_backup_config[:after_save].call(self)
    else
      self.write_dyna_model_s3_backup!
    end
  end
end
to_dyna_model_s3_backup_json() click to toggle source
# File lib/dyna_model/extensions/s3_backup.rb, line 39
def to_dyna_model_s3_backup_json
  ActiveSupport::JSON.encode({
    class: self.class.to_s,
    attributes: self.attributes
  })
end
write_dyna_model_s3_backup!() click to toggle source
# File lib/dyna_model/extensions/s3_backup.rb, line 35
def write_dyna_model_s3_backup!
  self.class.dyna_model_s3_backup_bucket.objects[File.join(self.class.dyna_model_s3_backup_config[:prefix], "#{self.dynamo_db_guid}.json")].write(self.to_dyna_model_s3_backup_json)
end