Class: Pod::Installer::Analyzer

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods-byte-panglem-beta/panglem.rb

Instance Method Summary collapse

Instance Method Details

#dependencies_for_specs(specs, platform, all_specs) ⇒ Object



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
96
97
98
99
100
101
# File 'lib/cocoapods-byte-panglem-beta/panglem.rb', line 70

def dependencies_for_specs(specs, platform, all_specs)
  dependent_specs = {
    :debug => Set.new,
    :release => Set.new,
  }

  if !specs.empty? && !all_specs.empty?
    specs.each do |s|
      s.dependencies(platform).each do |dep|
        temp_name =  dep.name
        if !temp_name.include?("Ads-Global/")
          all_specs[dep.name].each do |spec|
            if spec.non_library_specification?
              if s.test_specification? && spec.name == s.consumer(platform).app_host_name && spec.app_specification?
                # This needs to be handled separately, since we _don't_ want to treat this as a "normal" dependency
                next
              end
              raise Informative, "`#{s}` depends upon `#{spec}`, which is a `#{spec.spec_type}` spec."
            end

            dependent_specs.each do |config, set|
              next unless s.dependency_whitelisted_for_configuration?(dep, config)
              set << spec
            end
          end
        end
      end
    end
  end

  Hash[dependent_specs.map { |k, v| [k, (v - specs).group_by(&:root)] }].freeze
end

#original_dependencies_for_specsObject



69
# File 'lib/cocoapods-byte-panglem-beta/panglem.rb', line 69

alias_method :original_dependencies_for_specs, :dependencies_for_specs

#original_resolve_dependenciesObject



103
# File 'lib/cocoapods-byte-panglem-beta/panglem.rb', line 103

alias_method :original_resolve_dependencies, :resolve_dependencies

#resolve_dependencies(locked_dependencies) ⇒ Object



104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/cocoapods-byte-panglem-beta/panglem.rb', line 104

def resolve_dependencies(locked_dependencies)
  resolver_specs_by_target = original_resolve_dependencies(locked_dependencies)
  PMPlugin.action do |recoder|
    resolver_specs_by_target.each do |target, specs|

      if specs.length > 0
         ## SDK 场景下 不需要
        # Pod::UserInterface.section 'cocoapods-byte-panglem remove invalid dependencie from loaded dependencies ' do
        #   PM::Analyzer.delete_invalid_adapters target, specs
        # end if PM::Recorder.instance.get_global_note.auto_load

        if PM::Recorder.instance.is_release
          Pod::UserInterface.section "[cocoapods-byte-panglem-beta][info] start trying to update the sdk version (when is_release is yes) " do
            PM::Analyzer.resolve_release_target target, specs
          end
        else
          Pod::UserInterface.section '[cocoapods-byte-panglem-beta][info] start trying to update the sdk version ' do
            is_update_finish = PM::Analyzer.resolve_last target, specs
            if is_update_finish
              Pod::UserInterface.section '[cocoapods-byte-panglem-beta][info] write Podfile.pangle.lock' do
                write_lock_file recoder
              end
            end
          end
        end
      end
    end
  end
  resolver_specs_by_target
end

#write_lock_file(recoder) ⇒ Object



135
136
137
# File 'lib/cocoapods-byte-panglem-beta/panglem.rb', line 135

def write_lock_file(recoder)
  PM::Lockfile.new(recoder.to_hash).write_to_disk(File.expand_path("#{Pod::Config.instance.installation_root}/Podfile.pangle"))
end