Sha256: a681a3e2ec2bc89524244f4d5288471b859658acdf7b352a7591a3b8c68ce4a0

Contents?: true

Size: 1.45 KB

Versions: 24

Compression:

Stored size: 1.45 KB

Contents

# typed: strict
# frozen_string_literal: true

module Tapioca
  module Commands
    class GemGenerate < AbstractGem
      private

      sig { override.void }
      def execute
        Loaders::Gem.load_application(
          bundle: @bundle,
          prerequire: @prerequire,
          postrequire: @postrequire,
          default_command: default_command(:require),
          halt_upon_load_error: @halt_upon_load_error,
        )

        gem_queue = gems_to_generate(@gem_names).reject { |gem| @exclude.include?(gem.name) }
        anything_done = [
          perform_removals,
          gem_queue.any?,
        ].any?

        Executor.new(gem_queue, number_of_workers: @number_of_workers).run_in_parallel do |gem|
          shell.indent do
            compile_gem_rbi(gem)
            puts
          end
        end

        if anything_done
          validate_rbi_files(
            command: default_command(:gem, @gem_names.join(" ")),
            gem_dir: @outpath.to_s,
            dsl_dir: @dsl_dir,
            auto_strictness: @auto_strictness,
            gems: @bundle.dependencies,
          )

          say("All operations performed in working directory.", [:green, :bold])
          say("Please review changes and commit them.", [:green, :bold])
        else
          say("No operations performed, all RBIs are up-to-date.", [:green, :bold])
        end
      ensure
        GitAttributes.create_generated_attribute_file(@outpath)
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
tapioca-0.16.5 lib/tapioca/commands/gem_generate.rb
tapioca-0.16.4 lib/tapioca/commands/gem_generate.rb
tapioca-0.16.3 lib/tapioca/commands/gem_generate.rb
tapioca-0.16.2 lib/tapioca/commands/gem_generate.rb
tapioca-0.16.1 lib/tapioca/commands/gem_generate.rb
tapioca-0.16.0 lib/tapioca/commands/gem_generate.rb
tapioca-0.15.1 lib/tapioca/commands/gem_generate.rb
tapioca-0.15.0 lib/tapioca/commands/gem_generate.rb
tapioca-0.14.4 lib/tapioca/commands/gem_generate.rb
tapioca-0.14.3 lib/tapioca/commands/gem_generate.rb
tapioca-0.13.3 lib/tapioca/commands/gem_generate.rb
tapioca-0.13.2 lib/tapioca/commands/gem_generate.rb
tapioca-0.13.1 lib/tapioca/commands/gem_generate.rb
tapioca-0.13.0 lib/tapioca/commands/gem_generate.rb
tapioca-0.12.0 lib/tapioca/commands/gem_generate.rb
tapioca-0.11.17 lib/tapioca/commands/gem_generate.rb
tapioca-0.11.16 lib/tapioca/commands/gem_generate.rb
tapioca-0.11.15 lib/tapioca/commands/gem_generate.rb
tapioca-0.11.14 lib/tapioca/commands/gem_generate.rb
tapioca-0.11.13 lib/tapioca/commands/gem_generate.rb