Class: Pod::Command::PodfileInfo
- Inherits:
-
Pod::Command
- Object
- Pod::Command
- Pod::Command::PodfileInfo
- Defined in:
- lib/pod/command/podfile_info.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(argv) ⇒ PodfileInfo
constructor
A new instance of PodfileInfo.
- #pods_from_podfile(podfile) ⇒ Object
- #pods_info(pods, in_md = false) ⇒ Object
- #pods_info_hash(pods, keys = [:name, :homepage, :summary, :license]) ⇒ Object
- #run ⇒ Object
Constructor Details
#initialize(argv) ⇒ PodfileInfo
Returns a new instance of PodfileInfo.
22 23 24 25 26 27 28 |
# File 'lib/pod/command/podfile_info.rb', line 22 def initialize(argv) @info_all = argv.flag?('all') @info_in_md = argv.flag?('md') @info_license = argv.flag?('license') @podfile_path = argv.shift_argument super end |
Class Method Details
.options ⇒ Object
15 16 17 18 19 20 |
# File 'lib/pod/command/podfile_info.rb', line 15 def self. [ ["--all", "Show information about all Pods with dependencies that are used in a project"], ["--md", "Output information in Markdown format"] ].concat(super) end |
Instance Method Details
#pods_from_podfile(podfile) ⇒ Object
55 56 57 58 59 60 |
# File 'lib/pod/command/podfile_info.rb', line 55 def pods_from_podfile(podfile) pods = [] podfile.root_target_definitions.each {|e| h = e.to_hash; pods << h['dependencies'] if h['dependencies']} pods.flatten! pods.collect! {|pod| (pod.is_a?(Hash)) ? pod.keys.first : pod} end |
#pods_info(pods, in_md = false) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/pod/command/podfile_info.rb', line 75 def pods_info(pods, in_md=false) pods = pods_info_hash(pods, [:name, :homepage, :summary, :license]) pods.each do |pod| if in_md UI.puts "* [#{pod[:name]}](#{pod[:homepage]}) [#{pod[:license][:type]}] - #{pod[:summary]}" else UI.puts "- #{pod[:name]} [#{pod[:license][:type]}]".green UI.puts " #{pod[:summary]}\n\n" end end end |
#pods_info_hash(pods, keys = [:name, :homepage, :summary, :license]) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/pod/command/podfile_info.rb', line 62 def pods_info_hash(pods, keys=[:name, :homepage, :summary, :license]) pods_info = [] pods.each do |pod| spec = (Pod::SourcesManager.search_by_name(pod).first rescue nil) if spec info = {} keys.each { |k| info[k] = spec.specification.send(k) } pods_info << info end end pods_info end |
#run ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/pod/command/podfile_info.rb', line 30 def run use_podfile = (@podfile_path || !config.lockfile) if !use_podfile UI.puts "Using lockfile" if config.verbose? verify_lockfile_exists! lockfile = config.lockfile pods = lockfile.pod_names if @info_all deps = lockfile.dependencies.map{|d| d.name} pods = (deps + pods).uniq end elsif @podfile_path podfile = Pod::Podfile.from_file(@podfile_path) pods = pods_from_podfile(podfile) else verify_podfile_exists! podfile = config.podfile pods = pods_from_podfile(podfile) end UI.puts "\nPods used:\n".yellow unless @info_in_md pods_info(pods, @info_in_md) end |