class Pod::Command::Repo::Lint
Public Class Methods
new(argv)
click to toggle source
Calls superclass method
Pod::Command::new
# File lib/cocoapods/command/repo/lint.rb, line 23 def initialize(argv) @name = argv.shift_argument @only_errors = argv.flag?('only-errors') super end
options()
click to toggle source
Calls superclass method
Pod::Command::options
# File lib/cocoapods/command/repo/lint.rb, line 17 def self.options [ ['--only-errors', 'Lint presents only the errors'], ].concat(super) end
Public Instance Methods
run()
click to toggle source
Run the command
@todo Part of this logic needs to be ported to cocoapods-core so web
services can validate the repo.
@todo add UI.print
and enable print statements again.
# File lib/cocoapods/command/repo/lint.rb, line 36 def run sources = if @name if File.exist?(@name) [Source.new(Pathname(@name))] else config.sources_manager.sources([@name]) end else config.sources_manager.all end sources.each do |source| source.verify_compatibility! UI.puts "\nLinting spec repo `#{source.name}`\n".yellow validator = Source::HealthReporter.new(source.repo) validator.pre_check do |_name, _version| UI.print '.' end report = validator.analyze UI.puts UI.puts report.pods_by_warning.each do |message, versions_by_name| UI.puts "-> #{message}".yellow versions_by_name.each { |name, versions| UI.puts " - #{name} (#{versions * ', '})" } UI.puts end report.pods_by_error.each do |message, versions_by_name| UI.puts "-> #{message}".red versions_by_name.each { |name, versions| UI.puts " - #{name} (#{versions * ', '})" } UI.puts end UI.puts "Analyzed #{report.analyzed_paths.count} podspecs files.\n\n" if report.pods_by_error.count.zero? UI.puts 'All the specs passed validation.'.green << "\n\n" else raise Informative, "#{report.pods_by_error.count} podspecs failed validation." end end end