Method: CocoapodsMangle::Defines.category_selectors

Defined in:
lib/cocoapods_mangle/defines.rb

.category_selectors(binaries, classes) ⇒ Array<String>

Note:

Selectors on classes which are being mangled will not be mangled

Get the category selectors defined in a list of binaries

Parameters:

  • binaries (Array<String>)

    The binaries containing symbols to be mangled

  • classes (Array<String>)

    The classes which are being mangled

Returns:

  • (Array<String>)

    The category selectors defined in the binaries



65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/cocoapods_mangle/defines.rb', line 65

def self.category_selectors(binaries, classes)
  symbols = run_nm(binaries, '-U')
  selectors = symbols.select { |selector| selector[/ t [-|+]\[[^ ]*\([^ ]*\) [^ ]*\]/] }
  selectors = selectors.reject do |selector|
    class_name = selector[/[-|+]\[(.*?)\(/m, 1]
    classes.include? class_name
  end
  selectors = selectors.map do |selector|
    cleaned = selector.split(']').first + ']'
    cleaned[/[^ ]*\]\z/][0...-1]
  end 
  selectors = selectors.map { |selector| selector.split(':').first }
  selectors.uniq
end