Sha256: 61d51a5bd7fe23daec64c3832085e39b1e95f4ba388990bd153630bceae6c84d

Contents?: true

Size: 1.44 KB

Versions: 30

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

30 entries across 30 versions & 1 rubygems

Version Path
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
tapioca-0.11.15 lib/tapioca/commands/command.rb
tapioca-0.11.14 lib/tapioca/commands/command.rb
tapioca-0.11.13 lib/tapioca/commands/command.rb
tapioca-0.11.12 lib/tapioca/commands/command.rb
tapioca-0.11.11 lib/tapioca/commands/command.rb
tapioca-0.11.10 lib/tapioca/commands/command.rb
tapioca-0.11.9 lib/tapioca/commands/command.rb