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