class Pod::Command::List::Unused_pods
Public Instance Methods
collect_headers_path_of_pods(pods)
click to toggle source
# File lib/cocoapods-unused_pods/command/unused_pods.rb, line 59 def collect_headers_path_of_pods(pods) pods_header = Hash.new public_header_path = Dir.pwd + '/Pods/Headers/Public' pods.each do |pod| pod_public_header_path = public_header_path + '/' + pod + '/**/*.h' headers = Array.new Dir.glob(pod_public_header_path) do |header_path| headers.push(File.basename(header_path)) end pods_header[pod] = headers end pods_header end
parse_Podfile(podfile_path)
click to toggle source
# File lib/cocoapods-unused_pods/command/unused_pods.rb, line 45 def parse_Podfile(podfile_path) active_pods = Array.new File.open(podfile_path, 'r') do |f| active_pod_reg = /^[\t ]*pod *'(\w+)'[\n\r,]/ f.each_line do |line| if active_pod_reg.match(line) active_pods.push($1) end end end active_pods end
run()
click to toggle source
# File lib/cocoapods-unused_pods/command/unused_pods.rb, line 29 def run path = Dir.pwd + '/Podfile' if !File.exists? path help! "Please make sure current project has Podfile." Process.exit! false end UI.puts "In progress:" pods = parse_Podfile(path) pods_header = collect_headers_path_of_pods(pods) unused_pods = unused_pods(pods_header) UI.puts "Unused Pods:" UI.puts unused_pods end
unused_pods(pods_header)
click to toggle source
# File lib/cocoapods-unused_pods/command/unused_pods.rb, line 74 def unused_pods(pods_header) unused_pods = pods_header.keys filepathes = Dir.glob('./**/*.{h,pch,m,mm,c,cpp}') filepathes.each do |path| File.open(path) do |file| content = File.read(file) if ! content.valid_encoding? content = content.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8') end pods_header.each do |pod, headers| if path =~ /\/Pods\/#{pod}/ next end headers.each do |header| if header.length > 0 && content =~ /#import +.*#{header}[>\"]/ unused_pods.delete(pod) pods_header.delete(pod) break end end end end end unused_pods end