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.
-
move this file to `lib/pod/command/list/deprecated.rb` and update the class to exist in the the Pod::Command::List namespace
-
change this class to extend from `List` instead of `Command`. This tells the plugin system that it is a subcommand of `list`.
-
edit `lib/cocoapods_plugins.rb` to require this file
@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