Class: Pod::Command::Cache::List

Inherits:
Pod::Command::Cache show all
Defined in:
lib/cocoapods/command/cache/list.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Pod::Command::Cache

#pod_type

Methods inherited from Pod::Command

#ensure_master_spec_repo_exists!, ensure_not_root_or_allowed!, git_version, #installer_for_config, report_error, run, #verify_lockfile_exists!, verify_minimum_git_version!, #verify_podfile_exists!, verify_xcode_license_approved!

Methods included from Pod::Config::Mixin

#config

Constructor Details

#initialize(argv) ⇒ List

Returns a new instance of List.


22
23
24
25
26
# File 'lib/cocoapods/command/cache/list.rb', line 22

def initialize(argv)
  @pod_name = argv.shift_argument
  @short_output = argv.flag?('short')
  super
end

Class Method Details

.optionsObject


16
17
18
19
20
# File 'lib/cocoapods/command/cache/list.rb', line 16

def self.options
  [[
    '--short', 'Only print the path relative to the cache root'
  ]].concat(super)
end

Instance Method Details

Prints the list of specs & pod cache dirs for a single pod name.

This output is valid YAML so it can be parsed with 3rd party tools

Parameters:

  • cache_descriptors (Array<Hash>)

    The various infos about a pod cache. Keys are :spec_file, :version, :release and :slug


54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/cocoapods/command/cache/list.rb', line 54

def print_pod_cache_infos(pod_name, cache_descriptors)
  UI.puts "#{pod_name}:"
  cache_descriptors.each do |desc|
    if @short_output
      [:spec_file, :slug].each { |k| desc[k] = desc[k].relative_path_from(@cache.root) }
    end
    UI.puts("  - Version: #{desc[:version]}")
    UI.puts("    Type:    #{pod_type(desc)}")
    UI.puts("    Spec:    #{desc[:spec_file]}")
    UI.puts("    Pod:     #{desc[:slug]}")
  end
end

#runObject


28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/cocoapods/command/cache/list.rb', line 28

def run
  UI.puts("$CACHE_ROOT: #{@cache.root}") if @short_output
  if @pod_name.nil? # Print all
    @cache.cache_descriptors_per_pod.each do |pod_name, cache_descriptors|
      print_pod_cache_infos(pod_name, cache_descriptors)
    end
  else # Print only for the requested pod
    cache_descriptors = @cache.cache_descriptors_per_pod[@pod_name]
    if cache_descriptors.nil?
      UI.notice("No cache for pod named #{@pod_name} found")
    else
      print_pod_cache_infos(@pod_name, cache_descriptors)
    end
  end
end