Class: Pod::Installer::UserProjectIntegrator

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods/installer/user_project_integrator.rb,
lib/cocoapods/installer/user_project_integrator/target_integrator.rb,
lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb

Overview

The UserProjectIntegrator integrates the libraries generated by TargetDefinitions of the Podfile with their correspondent user projects.

Defined Under Namespace

Classes: TargetIntegrator

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(podfile, sandbox, installation_root, targets, targets_to_integrate, use_input_output_paths: true) ⇒ UserProjectIntegrator

Initialize a new instance



56
57
58
59
60
61
62
63
# File 'lib/cocoapods/installer/user_project_integrator.rb', line 56

def initialize(podfile, sandbox, installation_root, targets, targets_to_integrate, use_input_output_paths: true)
  @podfile = podfile
  @sandbox = sandbox
  @installation_root = installation_root
  @targets = targets
  @targets_to_integrate = targets_to_integrate
  @use_input_output_paths = use_input_output_paths
end

Instance Attribute Details

#installation_rootPathname (readonly)

TODO:

This is only used to compute the workspace path in case that it should be inferred by the project. If the workspace should be in the same dir of the project, this could be removed.

Returns the path of the installation.



31
32
33
# File 'lib/cocoapods/installer/user_project_integrator.rb', line 31

def installation_root
  @installation_root
end

#podfilePodfile (readonly)



19
20
21
# File 'lib/cocoapods/installer/user_project_integrator.rb', line 19

def podfile
  @podfile
end

#sandboxSandbox (readonly)



23
24
25
# File 'lib/cocoapods/installer/user_project_integrator.rb', line 23

def sandbox
  @sandbox
end

#targetsArray<AggregateTarget> (readonly)



35
36
37
# File 'lib/cocoapods/installer/user_project_integrator.rb', line 35

def targets
  @targets
end

#targets_to_integrateArray<AggregateTarget> (readonly)



40
41
42
# File 'lib/cocoapods/installer/user_project_integrator.rb', line 40

def targets_to_integrate
  @targets_to_integrate
end

#use_input_output_pathsBoolean (readonly) Also known as: use_input_output_paths?



44
45
46
# File 'lib/cocoapods/installer/user_project_integrator.rb', line 44

def use_input_output_paths
  @use_input_output_paths
end

Instance Method Details

#integrate!void

This method returns an undefined value.

Integrates the user projects associated with the TargetDefinitions with the Pods project and its products.



70
71
72
73
74
75
76
77
# File 'lib/cocoapods/installer/user_project_integrator.rb', line 70

def integrate!
  create_workspace
  deintegrated_projects = deintegrate_removed_targets
  integrate_user_targets
  warn_about_xcconfig_overrides
  projects_to_save = (user_projects_to_integrate + deintegrated_projects).uniq
  save_projects(projects_to_save)
end