Sha256: 9a82b0e5f578491946a465f624d7e48f027668bd30efaa542f9ac85dad7ce7f2

Contents?: true

Size: 1.48 KB

Versions: 14

Compression:

Stored size: 1.48 KB

Contents

# typed: strict
# frozen_string_literal: true

module Tapioca
  module Commands
    class Require < CommandWithoutTracker
      sig do
        params(
          requires_path: String,
          sorbet_config_path: String,
        ).void
      end
      def initialize(requires_path:, sorbet_config_path:)
        @requires_path = requires_path
        @sorbet_config_path = sorbet_config_path

        super()
      end

      sig { override.void }
      def execute
        compiler = Static::RequiresCompiler.new(@sorbet_config_path)
        name = set_color(@requires_path, :yellow, :bold)
        say("Compiling #{name}, this may take a few seconds... ")

        rb_string = compiler.compile
        if rb_string.empty?
          say("Nothing to do", :green)
          return
        end

        # Clean all existing requires before regenerating the list so we update
        # it with the new one found in the client code and remove the old ones.
        File.delete(@requires_path) if File.exist?(@requires_path)

        content = +"# typed: true\n"
        content << "# frozen_string_literal: true\n\n"
        content << rb_string

        create_file(@requires_path, content, verbose: false)

        say("Done", :green)

        say("All requires from this application have been written to #{name}.", [:green, :bold])
        cmd = set_color(default_command(:gem), :yellow, :bold)
        say("Please review changes and commit them, then run `#{cmd}`.", [:green, :bold])
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
tapioca-0.11.8 lib/tapioca/commands/require.rb
tapioca-0.11.7 lib/tapioca/commands/require.rb
tapioca-0.11.6 lib/tapioca/commands/require.rb
tapioca-0.11.5 lib/tapioca/commands/require.rb
tapioca-0.11.4 lib/tapioca/commands/require.rb
tapioca-0.11.3 lib/tapioca/commands/require.rb
tapioca-0.11.2 lib/tapioca/commands/require.rb
devcycle-ruby-server-sdk-2.0.0 vendor/bundle/ruby/3.0.0/gems/tapioca-0.11.1/lib/tapioca/commands/require.rb
tapioca-0.11.1 lib/tapioca/commands/require.rb
tapioca-0.11.0 lib/tapioca/commands/require.rb
tapioca-0.10.5 lib/tapioca/commands/require.rb
tapioca-0.10.4 lib/tapioca/commands/require.rb
tapioca-0.10.3 lib/tapioca/commands/require.rb
tapioca-0.10.2 lib/tapioca/commands/require.rb