class Pod::Command::Cache::Clean
Public Class Methods
new(argv)
click to toggle source
Calls superclass method
Pod::Command::Cache::new
# File lib/cocoapods/command/cache/clean.rb, line 27 def initialize(argv) @pod_name = argv.shift_argument @wipe_all = argv.flag?('all') super end
options()
click to toggle source
Calls superclass method
Pod::Command::options
# File lib/cocoapods/command/cache/clean.rb, line 21 def self.options [[ '--all', 'Remove all the cached pods without asking' ]].concat(super) end
Public Instance Methods
run()
click to toggle source
# File lib/cocoapods/command/cache/clean.rb, line 33 def run if @pod_name.nil? # Note: at that point, @wipe_all is always true (thanks to `validate!`) # Remove all clear_cache else # Remove only cache for this pod cache_descriptors = @cache.cache_descriptors_per_pod[@pod_name] if cache_descriptors.nil? UI.notice("No cache for pod named #{@pod_name} found") elsif cache_descriptors.count > 1 && !@wipe_all # Ask which to remove choices = cache_descriptors.map { |c| "#{@pod_name} v#{c[:version]} (#{pod_type(c)})" } index = UI.choose_from_array(choices, 'Which pod cache do you want to remove?') remove_caches([cache_descriptors[index]]) else # Remove all found cache of this pod remove_caches(cache_descriptors) end end end
validate!()
click to toggle source
Calls superclass method
# File lib/cocoapods/command/cache/clean.rb, line 55 def validate! super if @pod_name.nil? && !@wipe_all # Security measure, to avoid removing the pod cache too agressively by mistake help! 'You should either specify a pod name or use the --all flag' end end
Private Instance Methods
clear_cache()
click to toggle source
# File lib/cocoapods/command/cache/clean.rb, line 82 def clear_cache UI.message("Removing the whole cache dir #{@cache.root}") do FileUtils.rm_rf(@cache.root) end end
remove_caches(cache_descriptors)
click to toggle source
Removes the specified cache
@param [Array<Hash>] cache_descriptors
An array of caches to remove, each specified with the same hash as cache_descriptors_per_pod especially :spec_file and :slug
# File lib/cocoapods/command/cache/clean.rb, line 71 def remove_caches(cache_descriptors) cache_descriptors.each do |desc| UI.message("Removing spec #{desc[:spec_file]} (v#{desc[:version]})") do FileUtils.rm(desc[:spec_file]) end UI.message("Removing cache #{desc[:slug]}") do FileUtils.rm_rf(desc[:slug]) end end end