class S3Cleaner::Clean

Attributes

aws_config[R]
bucket_name[R]
num_releases[R]
prefix[R]

Public Class Methods

new(args) click to toggle source
# File lib/s3_cleaner/clean.rb, line 5
def initialize(args)
  @bucket_name = args.fetch(:bucket_name)
  @prefix = args.fetch(:prefix)
  @num_releases = args.fetch(:num_releases)
  @aws_config = args.fetch(:aws_config)
end

Public Instance Methods

delete_old_releases() click to toggle source
# File lib/s3_cleaner/clean.rb, line 12
def delete_old_releases
  return if directories_to_delete.nil? || directories_to_delete.empty?
  directories_to_delete.each do |dir|
    bucket.objects.with_prefix(dir).delete_all
  end
end
directories_to_delete() click to toggle source
# File lib/s3_cleaner/clean.rb, line 19
def directories_to_delete
  @directories_to_delete ||= directories[num_releases..-1]
end

Private Instance Methods

bucket() click to toggle source
# File lib/s3_cleaner/clean.rb, line 33
def bucket
  s3.buckets[bucket_name]
end
directories() click to toggle source
# File lib/s3_cleaner/clean.rb, line 25
def directories
  tree.children.select(&:branch?).collect(&:prefix).reverse
end
s3() click to toggle source
# File lib/s3_cleaner/clean.rb, line 37
def s3
  AWS.config(aws_config.merge({use_ssl: true}))
  AWS::S3.new
end
tree() click to toggle source
# File lib/s3_cleaner/clean.rb, line 29
def tree
  bucket.objects.with_prefix(prefix).as_tree
end