class YJCocoa::UnusedMethod
Usage
Public Class Methods
options()
click to toggle source
Calls superclass method
YJCocoa::Command::options
# File lib/yjcocoa/unused/unused_method.rb, line 21 def self.options [['--match-o', 'Match O 文件地址'], ['--match', '指定的字符串匹配,多字符串用 "," 分隔'], ['--ignore', '忽略的字符串匹配, 多字符串用 "," 分隔'], ['--output', '日志存放路径,默认当前路径']] + super end
Public Instance Methods
implemented_methods()
click to toggle source
# File lib/yjcocoa/unused/unused_method.rb, line 58 def implemented_methods lines = `otool -oV #{self.matcho}`.split("\n") methods = Hash.new lines.each {|line| line_scan = line.scan(/\s*imp 0x\w+ ([+|-]\[.+\s(.+)\])/) if line_scan.count > 0 imp = line_scan[0][0] sel = line_scan[0][1] if methods.include?(sel) methods[sel] << imp else methods[sel] = [imp] end end } return methods end
referenced_selectors()
click to toggle source
# File lib/yjcocoa/unused/unused_method.rb, line 76 def referenced_selectors lines = `otool -v -s __DATA __objc_selrefs #{self.matcho}`.split("\n") refs = [] lines.each { |line| line_scan = line.scan(/__TEXT:__objc_methname:(.+)/) if line_scan.count > 0 refs << line_scan[0][0] end } return refs end
run()
click to toggle source
# File lib/yjcocoa/unused/unused_method.rb, line 37 def run unused_methods = self.unreferenced_methods fetch_methods = unused_methods.reject {|m| !(check_match(m) && !check_ignore(m))} puts "分析完毕,打开日志:#{self.output}".green File.write(self.output, fetch_methods.join("\n")) `open #{self.output}` end
unreferenced_methods()
click to toggle source
# File lib/yjcocoa/unused/unused_method.rb, line 45 def unreferenced_methods methods = self.implemented_methods unless methods.count puts "#{self.matcho} can't find implemented methods".red self.banner! end sels = self.referenced_selectors sels.each {|sel| methods.delete(sel)} result = [] methods.values.each {|value| result += value} return result.sort end
validate!()
click to toggle source
businrss
Calls superclass method
# File lib/yjcocoa/unused/unused_method.rb, line 29 def validate! super unless self.matcho && self.matcho.length > 0 puts "Match O 文件地址为空".red self.banner! end end