Class: CocoapodsAssetsCleaner::AssetsCleaner
- Inherits:
-
Object
- Object
- CocoapodsAssetsCleaner::AssetsCleaner
- Defined in:
- lib/cocoapods-assets-cleaner/assets_cleaner.rb
Instance Method Summary collapse
- #check_and_extact_unsed_images(images, path) ⇒ Object
- #get_images_directories_from_path(path) ⇒ Object
- #get_images_from_path(path) ⇒ Object
- #init_clean ⇒ Object
-
#initialize(main_project_path_param, assets_path_param) ⇒ AssetsCleaner
constructor
A new instance of AssetsCleaner.
- #remove_unused_image(image_name, image_path) ⇒ Object
- #show_indicator_percentage(i) ⇒ Object
Constructor Details
#initialize(main_project_path_param, assets_path_param) ⇒ AssetsCleaner
Returns a new instance of AssetsCleaner.
6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/cocoapods-assets-cleaner/assets_cleaner.rb', line 6 def initialize(main_project_path_param, assets_path_param) @main_project_path = main_project_path_param @assets_path = assets_path_param @spinner = Enumerator.new do |e| loop do e.yield "|" e.yield "/" e.yield "-" e.yield '\\' end end end |
Instance Method Details
#check_and_extact_unsed_images(images, path) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/cocoapods-assets-cleaner/assets_cleaner.rb', line 50 def check_and_extact_unsed_images(images, path) unused_images = {} count = 0 images.each do |image_name, image_path| command_sh = `grep -R -l --exclude-dir=Assets.xcassets "#{image_name}" #{path}` if command_sh == "" Pod::UI.puts "\r#{image_name} is not used.".yellow unused_images[image_name] = image_path else Pod::UI.puts "\r#{image_name} is used.".green end percentage = (100 * count) / images.count show_indicator_percentage(percentage) count += 1 end return unused_images end |
#get_images_directories_from_path(path) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/cocoapods-assets-cleaner/assets_cleaner.rb', line 89 def get_images_directories_from_path(path) all_dir = Dir.entries(path) .select { |entry| File.directory? File.join(path, entry) and !(entry == "." || entry == "..") } images = {} all_non_images_dir = [] all_dir.each do |directory| new_path = File.join(path, directory) if directory.include? ".imageset" images[directory.gsub(".imageset", "")] = new_path else all_non_images_dir.push(new_path) end end return { :images => images, :directories => all_non_images_dir, } end |
#get_images_from_path(path) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/cocoapods-assets-cleaner/assets_cleaner.rb', line 70 def get_images_from_path(path) result = get_images_directories_from_path(path) imagesets = result[:images] directories = result[:directories] while directories.count > 0 current_directories = directories directories = [] current_directories.each do |directory| new_result = get_images_directories_from_path(directory) new_result[:images].each { |key, value| imagesets[key] = value } directories += new_result[:directories] || [] end end return imagesets end |
#init_clean ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/cocoapods-assets-cleaner/assets_cleaner.rb', line 20 def init_clean Pod::UI.puts "Getting images from assets...".yellow imagesets = get_images_from_path(@assets_path) Pod::UI.puts "#{imagesets.count} images founded" Pod::UI.puts "Searching for unused images...".yellow unused_imagesets = check_and_extact_unsed_images(imagesets, @main_project_path) Pod::UI.puts "#{unused_imagesets.count} unused images founded" Pod::UI.puts "Removing unused images...".yellow removed_imagesets = unused_imagesets.map { |image_name, image_path| remove_unused_image(image_name, image_path) } Pod::UI.puts "Removed #{removed_imagesets.count} from #{unused_imagesets.count} unused images." end |
#remove_unused_image(image_name, image_path) ⇒ Object
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/cocoapods-assets-cleaner/assets_cleaner.rb', line 39 def remove_unused_image(image_name, image_path) FileUtils.remove_dir(image_path) if File.directory?(image_path) Pod::UI.puts "Failure on removing #{image_name} Asset".red return false else return true end end |
#show_indicator_percentage(i) ⇒ Object
34 35 36 37 |
# File 'lib/cocoapods-assets-cleaner/assets_cleaner.rb', line 34 def show_indicator_percentage(i) printf("\r%d%% %s", i, @spinner.next) sleep(0.1) end |