class EbDeployer::VersionCleaner

Public Class Methods

new(app, number_to_keep) click to toggle source
# File lib/eb_deployer/version_cleaner.rb, line 3
def initialize(app, number_to_keep)
  @app = app
  @number_to_keep = number_to_keep
end

Public Instance Methods

clean(version_prefix = "") click to toggle source
# File lib/eb_deployer/version_cleaner.rb, line 8
def clean(version_prefix = "")
  if @number_to_keep > 0
    versions_to_remove = versions_to_clean(version_prefix)
    @app.remove(versions_to_remove, true)
  end
end

Private Instance Methods

range_to_keep() click to toggle source
# File lib/eb_deployer/version_cleaner.rb, line 26
def range_to_keep
  (0..(@number_to_keep-1))
end
versions_to_clean(version_prefix = "") click to toggle source
# File lib/eb_deployer/version_cleaner.rb, line 16
def versions_to_clean(version_prefix = "")
  all_versions = @app.versions.select do |apv|
    apv[:version].start_with?(version_prefix)
  end

  all_versions.sort! { |x, y| y[:date_updated] <=> x[:date_updated] }
  all_versions.slice!(range_to_keep)
  all_versions.map { |apv| apv[:version] }
end