class BrewCaskTools::Tasks::Cleanup

Cleanup task

Public Class Methods

new(casks) click to toggle source

@param optional casks [Array] array of cask names to cleanup

Calls superclass method
# File lib/bct/tasks/cleanup.rb, line 10
def initialize(casks)
  super()

  @cleaned = []

  if casks.empty?
    progressbar.total = caskroom.casks.length
    progressbar.log "\nLooking for casks to cleanup..."

    @cleaned = compile
  else
    @cleaned = casks.map { |c| caskroom.get(c) }
    return say 'Invalid cask specified', :red if @cleaned.compact.empty?
  end
  clean
end

Public Instance Methods

clean() click to toggle source
# File lib/bct/tasks/cleanup.rb, line 37
def clean
  return say "\nNo cleanup operations are necessary", :green if @cleaned.empty?

  @cleaned.each do |cask|
    cask.cleanup(&clean_block)
  end
end
clean_block() click to toggle source
# File lib/bct/tasks/cleanup.rb, line 45
def clean_block
  proc do |cask, versions|
    name = cask.name
    say "Cleaning up #{name}", :yellow
    if cask.deprecated? &&
       no?("#{name} has been deprecated. Ok to remove all versions?", :red)

      say 'No action taken.', :red
      next
    end
    say "Removed #{versions.length} old version(s)", :yellow
  end
end
compile() click to toggle source
# File lib/bct/tasks/cleanup.rb, line 27
def compile
  cleaned = []
  caskroom.enumerate do |cask|
    increment(cask)

    cleaned << cask if cask.can_cleanup?
  end
  cleaned
end