class Pod::Source::Manager
Public Instance Methods
find_or_create_source_with_url(url)
click to toggle source
Returns the source whose {Source#url} is equal to `url`, adding the repo in a manner similarly to `pod repo add` if it is not found.
@raise If no source with the given `url` could be created,
@return [Source] The source whose {Source#url} is equal to `url`,
@param [String] url
The URL of the source.
# File lib/cocoapods/sources_manager.rb, line 17 def find_or_create_source_with_url(url) unless source = source_with_url(url) name = name_for_url(url) # Hack to ensure that `repo add` output is shown. previous_title_level = UI.title_level UI.title_level = 0 begin if name =~ /^master(-\d+)?$/ Command::Setup.parse([]).run else Command::Repo::Add.parse([name, url]).run end rescue Informative => e message = "Unable to add a source with url `#{url}` " \ "named `#{name}`.\n" message << "(#{e})\n" if Config.instance.verbose? message << 'You can try adding it manually in ' \ "`#{Config.instance.repos_dir}` or via `pod repo add`." raise Informative, message ensure UI.title_level = previous_title_level end source = source_with_url(url) end raise "Unable to create a source with URL #{url}" unless source source end
search_index_path()
click to toggle source
@return [Pathname] The path where the search index should be stored.
# File lib/cocoapods/sources_manager.rb, line 63 def search_index_path @search_index_path ||= Config.instance.search_index_file end
source_with_name_or_url(name_or_url)
click to toggle source
Returns the source whose {Source#name} or {Source#url} is equal to the given `name_or_url`.
@return [Source] The source whose {Source#name} or {Source#url} is equal to the
given `name_or_url`.
@param [String] name_or_url
The name or the URL of the source.
# File lib/cocoapods/sources_manager.rb, line 56 def source_with_name_or_url(name_or_url) all.find { |s| s.name == name_or_url } || find_or_create_source_with_url(name_or_url) end
update(source_name = nil, show_output = false)
click to toggle source
Updates the local clone of the spec-repo with the given name or of all the git repos if the name is omitted.
@param [String] source_name
@param [Bool] show_output
@return [void]
# File lib/cocoapods/sources_manager.rb, line 78 def update(source_name = nil, show_output = false) if source_name sources = [git_source_named(source_name)] else sources = git_sources end changed_spec_paths = {} sources.each do |source| UI.section "Updating spec repo `#{source.name}`" do changed_source_paths = source.update(show_output) changed_spec_paths[source] = changed_source_paths if changed_source_paths.count > 0 source.verify_compatibility! end end # Perform search index update operation in background. update_search_index_if_needed_in_background(changed_spec_paths) end