# frozen_string_literal: true
namespace :tc do
desc "Setup type checking for the project" task install: :environment do Rails::Tc::CommandRunner.add_development_gem "sorbet" Rails::Tc::CommandRunner.add_development_gem "tapioca" Rails::Tc::CommandRunner.add_runtime_gem "sorbet-runtime" Rails::Tc::CommandRunner.init unless Rails::Tc::TypeChecker.set_up? Rails::Tc::CommandRunner.generate Rails::Tc::Rubocop.patch_configuration end desc "Update rails-specific types" task generate: :environment do Rails::Tc::CommandRunner.generate end desc "Check types in the project" task check: :environment do checker = Rails::Tc::TypeChecker.new([], ["*/**/*.rbi"]) if checker.errors.empty? puts "Good job, no errors" else checker.errors.each do |error| puts error.to_s puts "\n\n" end puts "Found #{checker.errors.size} errors" Kernel.exit(-1) end end
end