Class: Pod::Command::Update
- Inherits:
-
Pod::Command
- Object
- CLAide::Command
- Pod::Command
- Pod::Command::Update
- Includes:
- ProjectDirectory, RepoUpdate
- Defined in:
- lib/cocoapods/command/update.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(argv) ⇒ Update
constructor
A new instance of Update.
- #run ⇒ Object
-
#verify_pods_are_installed! ⇒ Object
Check if all given pods are installed.
Methods inherited from Pod::Command
#ensure_master_spec_repo_exists!, report_error, run
Methods included from Pod::Config::Mixin
Constructor Details
#initialize(argv) ⇒ Update
Returns a new instance of Update.
30 31 32 33 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 60 61 62 |
# File 'lib/cocoapods/command/update.rb', line 30 def initialize(argv) @pods = argv.arguments! unless argv.arguments.empty? source_urls = argv.option('sources', '').split(',') excluded_pods = argv.option('exclude-pods', '').split(',') unless source_urls.empty? source_pods = source_urls.flat_map { |url| config.sources_manager.source_with_name_or_url(url).pods } unless source_pods.empty? source_pods = source_pods.select { |pod| config.lockfile.pod_names.include?(pod) } if @pods @pods += source_pods else @pods = source_pods unless source_pods.empty? end end end unless excluded_pods.empty? @pods ||= config.lockfile.pod_names.dup non_installed_pods = (excluded_pods - @pods) unless non_installed_pods.empty? pluralized_words = non_installed_pods.length > 1 ? %w(Pods are) : %w(Pod is) = "Trying to skip `#{non_installed_pods.join('`, `')}` #{pluralized_words.first} " \ "which #{pluralized_words.last} not installed" raise Informative, end @pods.delete_if { |pod| excluded_pods.include?(pod) } end super end |
Class Method Details
.options ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/cocoapods/command/update.rb', line 22 def self. [ ['--sources=https://github.com/artsy/Specs,master', 'The sources from which to update dependent pods. ' \ 'Multiple sources must be comma-delimited. The master repo will not be included by default with this option.'], ['--exclude-pods=podName', 'Pods to exclude during update. Multiple pods must be comma-delimited.'], ].concat(super) end |
Instance Method Details
#run ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/cocoapods/command/update.rb', line 84 def run verify_podfile_exists! installer = installer_for_config installer.repo_update = repo_update?(:default => true) if @pods verify_lockfile_exists! verify_pods_are_installed! installer.update = { :pods => @pods } else UI.puts 'Update all pods'.yellow installer.update = true end installer.install! end |
#verify_pods_are_installed! ⇒ Object
Check if all given pods are installed
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/cocoapods/command/update.rb', line 66 def verify_pods_are_installed! lockfile_roots = config.lockfile.pod_names.map { |p| Specification.root_name(p) } missing_pods = @pods.map { |p| Specification.root_name(p) }.select do |pod| !lockfile_roots.include?(pod) end unless missing_pods.empty? = if missing_pods.length > 1 "Pods `#{missing_pods.join('`, `')}` are not " \ 'installed and cannot be updated' else "The `#{missing_pods.first}` Pod is not installed " \ 'and cannot be updated' end raise Informative, end end |