Class: Pod::Installer::Xcode::PodsProjectGenerator::TargetInstallationResult

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb

Overview

A simple container produced after a target installation is completed.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(target, native_target, resource_bundle_targets = [], test_native_targets = [], test_resource_bundle_targets = {}, test_app_host_targets = [], app_native_targets = [], app_resource_bundle_targets = {}) ⇒ TargetInstallationResult

Initialize a new instance


64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 64

def initialize(target, native_target, resource_bundle_targets = [], test_native_targets = [],
               test_resource_bundle_targets = {}, test_app_host_targets = [],
               app_native_targets = [], app_resource_bundle_targets = {})
  @target = target
  @native_target = native_target
  @resource_bundle_targets = resource_bundle_targets
  @test_native_targets = test_native_targets
  @test_resource_bundle_targets = test_resource_bundle_targets
  @test_app_host_targets = test_app_host_targets
  @app_native_targets = app_native_targets
  @app_resource_bundle_targets = app_resource_bundle_targets
end

Instance Attribute Details

#app_native_targetsArray<PBXNativeTarget> (readonly)


45
46
47
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 45

def app_native_targets
  @app_native_targets
end

#app_resource_bundle_targetsHash{String=>Array<PBXNativeTarget>} (readonly)


51
52
53
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 51

def app_resource_bundle_targets
  @app_resource_bundle_targets
end

#native_targetPBXNativeTarget (readonly)


16
17
18
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 16

def native_target
  @native_target
end

#resource_bundle_targetsArray<PBXNativeTarget> (readonly)


22
23
24
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 22

def resource_bundle_targets
  @resource_bundle_targets
end

#targetTarget (readonly)


11
12
13
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 11

def target
  @target
end

#test_app_host_targetsArray<PBXNativeTarget> (readonly)


39
40
41
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 39

def test_app_host_targets
  @test_app_host_targets
end

#test_native_targetsArray<PBXNativeTarget> (readonly)


28
29
30
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 28

def test_native_targets
  @test_native_targets
end

#test_resource_bundle_targetsHash{String=>Array<PBXNativeTarget>} (readonly)


34
35
36
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 34

def test_resource_bundle_targets
  @test_resource_bundle_targets
end

Instance Method Details

#app_host_target_labelled(label) ⇒ PBXNativeTarget


117
118
119
120
121
122
123
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 117

def app_host_target_labelled(label)
  app_native_targets.find do |app_native_target|
    app_native_target.name == label
  end || test_app_host_targets.find do |app_native_target|
    app_native_target.name == label
  end
end

#app_specs_by_native_targetHash{PBXNativeTarget => Specification}


101
102
103
104
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 101

def app_specs_by_native_target
  app_specs_by_native_target = Hash[target.app_specs.map { |spec| [app_native_target_from_spec(spec), spec] }]
  app_specs_by_native_target.delete_if { |k, _| k.nil? }
end

#native_target_for_spec(spec) ⇒ PBXNativeTarget

Returns the corresponding native target to use based on the provided specification.


84
85
86
87
88
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 84

def native_target_for_spec(spec)
  return native_target if spec.library_specification?
  return test_native_target_from_spec(spec) if spec.test_specification?
  return app_native_target_from_spec(spec) if spec.app_specification?
end

#non_library_specs_by_native_targetHash{PBXNativeTarget => Specification}


109
110
111
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 109

def non_library_specs_by_native_target
  test_specs_by_native_target.merge(app_specs_by_native_target)
end

#test_specs_by_native_targetHash{PBXNativeTarget => Specification}


93
94
95
96
# File 'lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb', line 93

def test_specs_by_native_target
  test_specs_by_native_target = Hash[target.test_specs.map { |spec| [test_native_target_from_spec(spec), spec] }]
  test_specs_by_native_target.delete_if { |k, _| k.nil? }
end