Class: Pod::Installer
  
  
  
  
  
    - Inherits:
- 
      Object
      
        
        show all
      
    
    - Defined in:
- lib/swordfish/native/analyzer.rb,
 lib/swordfish/native/installer.rb,
 lib/swordfish/native/target_validator.rb,
 lib/swordfish/native/installation_options.rb,
 lib/swordfish/native/pod_source_installer.rb,
 lib/swordfish/native/pod_target_installer.rb,
 lib/swordfish/native/pod_source_downloader.rb,
 lib/swordfish/hmap/post_install_hook_context.rb
 
Defined Under Namespace
  
    
  
    
      Classes: Analyzer, InstallationOptions, PodSourceDownloader, PodSourceInstaller, PostInstallHooksContext, Xcode
    
  
  
    
      Instance Method Summary
      collapse
    
    
  
  
    Instance Method Details
    
      
  
  
    #create_pod_installer(pod_name)  ⇒ Object 
  
  
  
  
    | 
10
11
12
13
14 | # File 'lib/swordfish/native/installer.rb', line 10
def create_pod_installer(pod_name)
  installer = old_create_pod_installer(pod_name)
  installer.installation_options = installation_options
  installer
end | 
 
    
      
  
  
    #install_pod_sources  ⇒ Object 
  
  
  
  
    | 
17
18
19
20
21
22
23
24
25
26
27
28
29 | # File 'lib/swordfish/native/installer.rb', line 17
def install_pod_sources
  if installation_options.install_with_multi_threads
    if Pod.match_version?('~> 1.4.0')
      install_pod_sources_for_version_in_1_4_0
    elsif Pod.match_version?('~> 1.5')
      install_pod_sources_for_version_above_1_5_0
    else
      old_install_pod_sources
    end
  else
    old_install_pod_sources
    end
end | 
 
    
      
  
  
    #install_pod_sources_for_version_above_1_5_0  ⇒ Object 
  
  
  
  
    | 
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95 | # File 'lib/swordfish/native/installer.rb', line 55
def install_pod_sources_for_version_above_1_5_0
  @installed_specs = []
  pods_to_install = sandbox_state.added | sandbox_state.changed
  title_options = { verbose_prefix: '-> '.green }
      Parallel.each(root_specs.sort_by(&:name), in_threads: 4) do |spec|
    if pods_to_install.include?(spec.name)
      if sandbox_state.changed.include?(spec.name) && sandbox.manifest
        current_version = spec.version
        previous_version = sandbox.manifest.version(spec.name)
        has_changed_version = current_version != previous_version
        current_repo = analysis_result.specs_by_source.detect do |key, values|
          break key if values.map(&:name).include?(spec.name)
        end
        current_repo &&= current_repo.url || current_repo.name
        previous_spec_repo = sandbox.manifest.spec_repo(spec.name)
        has_changed_repo = !previous_spec_repo.nil? && current_repo && (current_repo != previous_spec_repo)
        title = "Installing #{spec.name} #{spec.version}"
        if has_changed_version && has_changed_repo
          title += " (was #{previous_version} and source changed to `#{current_repo}` from `#{previous_spec_repo}`)"
          end
        if has_changed_version && !has_changed_repo
          title += " (was #{previous_version})"
          end
        if !has_changed_version && has_changed_repo
          title += " (source changed to `#{current_repo}` from `#{previous_spec_repo}`)"
          end
      else
        title = "Installing #{spec}"
      end
      UI.titled_section(title.green, title_options) do
        install_source_of_pod(spec.name)
      end
    else
      UI.titled_section("Using #{spec}", title_options) do
        create_pod_installer(spec.name)
      end
    end
  end
end | 
 
    
      
  
  
    #install_pod_sources_for_version_in_1_4_0  ⇒ Object 
  
  
  
  
    
rewrite install_pod_sources
   
 
  
  
    | 
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 | # File 'lib/swordfish/native/installer.rb', line 32
def install_pod_sources_for_version_in_1_4_0
  @installed_specs = []
  pods_to_install = sandbox_state.added | sandbox_state.changed
  title_options = { verbose_prefix: '-> '.green }
  Parallel.each(root_specs.sort_by(&:name), in_threads: 4) do |spec|
    if pods_to_install.include?(spec.name)
      if sandbox_state.changed.include?(spec.name) && sandbox.manifest
        previous = sandbox.manifest.version(spec.name)
        title = "Installing #{spec.name} #{spec.version} (was #{previous})"
      else
        title = "Installing #{spec}"
      end
      UI.titled_section(title.green, title_options) do
        install_source_of_pod(spec.name)
      end
    else
      UI.titled_section("Using #{spec}", title_options) do
        create_pod_installer(spec.name)
      end
    end
  end
end | 
 
    
      
  
  
    #old_create_pod_installer  ⇒ Object 
  
  
  
  
    | 
9 | # File 'lib/swordfish/native/installer.rb', line 9
alias old_create_pod_installer create_pod_installer | 
 
    
      
  
  
    #old_install_pod_sources  ⇒ Object 
  
  
  
  
    | 
16 | # File 'lib/swordfish/native/installer.rb', line 16
alias old_install_pod_sources install_pod_sources | 
 
    
      
  
  
    #old_write_lockfiles  ⇒ Object 
  
  
  
  
    | 
97 | # File 'lib/swordfish/native/installer.rb', line 97
alias old_write_lockfiles write_lockfiles | 
 
    
      
  
  
    #write_lockfiles  ⇒ Object 
  
  
  
  
    | 
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115 | # File 'lib/swordfish/native/installer.rb', line 98
def write_lockfiles
  old_write_lockfiles
  if File.exist?('Podfile_local')
    project = Xcodeproj::Project.open(config.sandbox.project_path)
        group = project.main_group
    group.set_source_tree('SOURCE_ROOT')
        file_ref = group.new_reference(config.sandbox.root + '../Podfile_local')
        podfile_local_group = group.children.last
    group.children.pop
    group.children.unshift(podfile_local_group)
        project.save
  end
end |