Method: Pod::Resolver#specifications_for_dependency

Defined in:
lib/cocoapods-lhj-bin/native/resolver.rb

#specifications_for_dependency(dependency, additional_requirements_frozen = []) ⇒ Object


34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/cocoapods-lhj-bin/native/resolver.rb', line 34

def specifications_for_dependency(dependency, additional_requirements_frozen = [])
  additional_requirements = additional_requirements_frozen.dup.compact
  requirement = Requirement.new(dependency.requirement.as_list + additional_requirements.flat_map(&:as_list))
  if podfile.allow_prerelease? && !requirement.prerelease?
    requirement = Requirement.new(dependency.requirement.as_list.map { |r| r + '.a' } + additional_requirements.flat_map(&:as_list))
  end

  options = if Pod.match_version?('~> 1.7')
              podfile.installation_options
            else
              installation_options
            end

  if Pod.match_version?('~> 1.8')
    specifications = find_cached_set(dependency)
                     .all_specifications(options.warn_for_multiple_pod_sources, requirement)
  else
    specifications = find_cached_set(dependency)
                     .all_specifications(options.warn_for_multiple_pod_sources)
                     .select { |s| requirement.satisfied_by? s.version }
  end

  specifications
    .map { |s| s.subspec_by_name(dependency.name, false, true) }
    .compact
end