class Jeweler::Commands::CheckDependencies
def self.build_for(jeweler)
def self.build_for(jeweler) command = new command.gemspec = jeweler.gemspec command end
def dependencies
def dependencies case type when :runtime, :development gemspec.send("#{type}_dependencies") else gemspec.dependencies end end
def find_missing_dependencies
def find_missing_dependencies if Gem::Specification.respond_to?(:find_by_name) dependencies.select do |dependency| begin spec = Gem::Specification.find_by_name(dependency.name, *dependency.requirement.as_list) spec.activate if spec !spec rescue LoadError => e true end end else dependencies.select do |dependency| begin Gem.activate dependency.name, *dependency.requirement.as_list false rescue LoadError => e true end end end end
def run
def run missing_dependencies = find_missing_dependencies if missing_dependencies.empty? puts "#{type || 'All'} dependencies seem to be installed." else puts 'Missing some dependencies. Install them with the following commands:' missing_dependencies.each do |dependency| puts %(\tgem install #{dependency.name} --version "#{dependency.requirement}") end abort "Run the specified gem commands before trying to run this again: {$PROGRAM_NAME} #{ARGV.join(' ')}" end end