class Pod::Command::Sort

This is an example of a cocoapods plugin adding a top-level subcommand to the 'pod' command.

You can also create subcommands of existing or new commands. Say you wanted to add a subcommand to `list` to show newly deprecated pods, (e.g. `pod list deprecated`), there are a few things that would need to change.

@todo Create a PR to add your plugin to CocoaPods/cocoapods.org

in the `plugins.json` file, once your plugin is released.

Public Class Methods

new(argv) click to toggle source
Calls superclass method
# File lib/cocoapods-external-pod-sorter/command/sorter.rb, line 35
def initialize(argv)
  @project_directory = argv.option('project-directory')
  super
end
options() click to toggle source
Calls superclass method
# File lib/cocoapods-external-pod-sorter/command/sorter.rb, line 29
def self.options
  [
      ['--project-directory', 'The path to the root of the project directory']
  ].concat(super)
end

Public Instance Methods

run() click to toggle source
# File lib/cocoapods-external-pod-sorter/command/sorter.rb, line 47
def run
  config = Pod::Config.instance
  config.installation_root = Pathname.new(@project_directory) if @project_directory
  data_source = ExternalPodSorter::LocalDataSource.new(config)
  sorter = ExternalPodSorter.new(data_source)
  sorter.sort

  if sorter.grouped_pods
    sorter.grouped_pods.each do |group|
    group.each do |pod|
      display = pod.name.dup
      if pod.external_dependency_names.any?
        pod.external_dependency_names.each do |name|
          display << "\n- #{name}"
        end
      end
      display << "\n\n"
      puts display
    end
  end
  else
    puts '没有未依赖正式版本组件.'
  end
  
end
validate!() click to toggle source
Calls superclass method
# File lib/cocoapods-external-pod-sorter/command/sorter.rb, line 40
def validate!
  super
  podfile_empty = (@project_directory && Pathname.glob(File.join(@project_directory, 'Podfile')).empty?) || 
  Pathname.glob('Podfile').empty?
  help! 'No `Podfile` found in the project directory.' if podfile_empty
end