Class: IosToolchain::ProjectAnalyzer

Inherits:
Object
  • Object
show all
Defined in:
lib/ios_toolchain/project_analyzer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project_root) ⇒ ProjectAnalyzer

Returns a new instance of ProjectAnalyzer.



8
9
10
11
12
# File 'lib/ios_toolchain/project_analyzer.rb', line 8

def initialize(project_root)
  @project_root = Pathname.new(project_root).realpath.to_s
  @project_path = find_project_path!
  @project = Xcodeproj::Project.open(@project_path)
end

Instance Attribute Details

#project_pathObject (readonly)

Returns the value of attribute project_path.



6
7
8
# File 'lib/ios_toolchain/project_analyzer.rb', line 6

def project_path
  @project_path
end

#project_rootObject (readonly)

Returns the value of attribute project_root.



6
7
8
# File 'lib/ios_toolchain/project_analyzer.rb', line 6

def project_root
  @project_root
end

Instance Method Details

#app_targetsObject



25
26
27
28
29
# File 'lib/ios_toolchain/project_analyzer.rb', line 25

def app_targets
  project.targets.map(&:name).find_all do |name|
    !name.include?('Tests')
  end
end

#crashlytics_framework_pathObject



21
22
23
# File 'lib/ios_toolchain/project_analyzer.rb', line 21

def crashlytics_framework_path
  Dir.glob("#{project_root}/**/Crashlytics.framework").first
end

#default_schemeObject



14
15
16
# File 'lib/ios_toolchain/project_analyzer.rb', line 14

def default_scheme
  shared_schemes.find { |name| name == project_name }
end

#default_sdkObject



18
19
# File 'lib/ios_toolchain/project_analyzer.rb', line 18

def default_sdk
end

#test_targetsObject



31
32
33
34
35
# File 'lib/ios_toolchain/project_analyzer.rb', line 31

def test_targets
  project.targets.map(&:name).find_all do |name|
    name.include?('Tests') && !name.include?('UITests')
  end
end

#ui_test_targetsObject



37
38
39
40
41
# File 'lib/ios_toolchain/project_analyzer.rb', line 37

def ui_test_targets
  project.targets.map(&:name).find_all do |name|
    name.include?('UITests')
  end
end