Commit 6a267db7 authored by Samuel E. Giddins's avatar Samuel E. Giddins

[Resolver] Better group resolver delegate methods by module

parent 30f7e9da
...@@ -6,9 +6,6 @@ module Pod ...@@ -6,9 +6,6 @@ module Pod
# by target for a given Podfile. # by target for a given Podfile.
# #
class Resolver class Resolver
include ::Resolver::UI
include ::Resolver::SpecificationProvider
# @return [Sandbox] the Sandbox used by the resolver to find external # @return [Sandbox] the Sandbox used by the resolver to find external
# dependencies. # dependencies.
# #
...@@ -66,6 +63,40 @@ module Pod ...@@ -66,6 +63,40 @@ module Pod
raise Informative, e.message raise Informative, e.message
end end
# @return [Hash{Podfile::TargetDefinition => Array<Specification>}]
# returns the resolved specifications grouped by target.
#
# @note The returned specifications can be subspecs.
#
def specs_by_target
@specs_by_target ||= begin
specs_by_target = {}
podfile.target_definition_list.each do |target|
specs_by_target[target] = target.dependencies.map(&:name).map do |name|
node = @activated.vertex_named(name)
(node.recursive_successors << node).to_a
end.
flatten.
map(&:payload).
uniq.
sort { |x, y| x.name <=> y.name }.
each do |spec|
validate_platform(spec, target)
sandbox.store_head_pod(spec.name) if spec.version.head
end
end
specs_by_target
end
end
#-------------------------------------------------------------------------#
public
# @!group Specification Provider
include ::Resolver::SpecificationProvider
def search_for(dependency) def search_for(dependency)
@search ||= {} @search ||= {}
@search[dependency] ||= begin @search[dependency] ||= begin
...@@ -117,31 +148,13 @@ module Pod ...@@ -117,31 +148,13 @@ module Pod
end end
end end
# @return [Hash{Podfile::TargetDefinition => Array<Specification>}] #-------------------------------------------------------------------------#
# returns the resolved specifications grouped by target.
# public
# @note The returned specifications can be subspecs.
# # @!group Resolver UI
def specs_by_target
@specs_by_target ||= begin include ::Resolver::UI
specs_by_target = {}
podfile.target_definition_list.each do |target|
specs_by_target[target] = target.dependencies.map(&:name).map do |name|
node = @activated.vertex_named(name)
(node.recursive_successors << node).to_a
end.
flatten.
map(&:payload).
uniq.
sort { |x, y| x.name <=> y.name }.
each do |spec|
validate_platform(spec, target)
sandbox.store_head_pod(spec.name) if spec.version.head
end
end
specs_by_target
end
end
#-------------------------------------------------------------------------# #-------------------------------------------------------------------------#
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment