Sha256: 61d51a5bd7fe23daec64c3832085e39b1e95f4ba388990bd153630bceae6c84d

Contents?: true

Size: 1.44 KB

Versions: 27

Compression:

Stored size: 1.44 KB

Contents

# typed: strict
# frozen_string_literal: true

module Tapioca
  module Commands
    class Command
      extend T::Sig
      extend T::Helpers

      class FileWriter < Thor
        include Thor::Actions
      end

      include Thor::Base
      include CliHelper

      abstract!

      sig { void }
      def initialize
        @file_writer = T.let(FileWriter.new, Thor::Actions)
      end

      sig(:final) { void }
      def run
        Tapioca.silence_warnings do
          execute
        end
      end

      private

      sig { abstract.void }
      def execute; end

      sig { params(command: Symbol, args: String).returns(String) }
      def default_command(command, *args)
        [Tapioca::BINARY_FILE, command.to_s, *args].join(" ")
      end

      sig { returns(Thor::Actions) }
      attr_reader :file_writer

      sig do
        params(
          path: T.any(String, Pathname),
          content: String,
          force: T::Boolean,
          skip: T::Boolean,
          verbose: T::Boolean,
        ).void
      end
      def create_file(path, content, force: true, skip: false, verbose: true)
        file_writer.create_file(path, force: force, skip: skip, verbose: verbose) { content }
      end

      sig do
        params(
          path: T.any(String, Pathname),
          verbose: T::Boolean,
        ).void
      end
      def remove_file(path, verbose: true)
        file_writer.remove_file(path, verbose: verbose)
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
tapioca-0.16.8 lib/tapioca/commands/command.rb
tapioca-0.16.7 lib/tapioca/commands/command.rb
tapioca-0.16.6 lib/tapioca/commands/command.rb
tapioca-0.16.5 lib/tapioca/commands/command.rb
tapioca-0.16.4 lib/tapioca/commands/command.rb
tapioca-0.16.3 lib/tapioca/commands/command.rb
tapioca-0.16.2 lib/tapioca/commands/command.rb
tapioca-0.16.1 lib/tapioca/commands/command.rb
tapioca-0.16.0 lib/tapioca/commands/command.rb
tapioca-0.15.1 lib/tapioca/commands/command.rb
tapioca-0.15.0 lib/tapioca/commands/command.rb
tapioca-0.14.4 lib/tapioca/commands/command.rb
tapioca-0.14.3 lib/tapioca/commands/command.rb
tapioca-0.13.3 lib/tapioca/commands/command.rb
tapioca-0.13.2 lib/tapioca/commands/command.rb
tapioca-0.13.1 lib/tapioca/commands/command.rb
tapioca-0.13.0 lib/tapioca/commands/command.rb
tapioca-0.12.0 lib/tapioca/commands/command.rb
tapioca-0.11.17 lib/tapioca/commands/command.rb
tapioca-0.11.16 lib/tapioca/commands/command.rb