Sha256: 14f4fc47c02e07b75ff48c42f6af5b87ba85796b9ecebed6fca8bfd19ad46e6f

Contents?: true

Size: 1.46 KB

Versions: 15

Compression:

Stored size: 1.46 KB

Contents

# typed: strict
# frozen_string_literal: true

module Tapioca
  module Commands
    class Require < Command
      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

15 entries across 15 versions & 1 rubygems

Version Path
tapioca-0.10.1 lib/tapioca/commands/require.rb
tapioca-0.10.0 lib/tapioca/commands/require.rb
tapioca-0.9.4 lib/tapioca/commands/require.rb
tapioca-0.9.3 lib/tapioca/commands/require.rb
tapioca-0.9.2 lib/tapioca/commands/require.rb
tapioca-0.9.1 lib/tapioca/commands/require.rb
tapioca-0.9.0 lib/tapioca/commands/require.rb
tapioca-0.8.3 lib/tapioca/commands/require.rb
tapioca-0.8.2 lib/tapioca/commands/require.rb
tapioca-0.7.3 lib/tapioca/commands/require.rb
tapioca-0.8.1 lib/tapioca/commands/require.rb
tapioca-0.8.0 lib/tapioca/commands/require.rb
tapioca-0.7.2 lib/tapioca/commands/require.rb
tapioca-0.7.1 lib/tapioca/commands/require.rb
tapioca-0.7.0 lib/tapioca/commands/require.rb