Sha256: f26aada6ddfe9e0654182d1b0af0b2b4c54abb4054bc1b31dce2b6f5636fc2f8

Contents?: true

Size: 1.93 KB

Versions: 4

Compression:

Stored size: 1.93 KB

Contents

# frozen_string_literal: true

module KStarter
  module Starters
    # Generate command line for a new ruby gem project.
    class Base
      include TtyHelpers

      attr_reader :project
      attr_reader :code_open_delay

      def initialize(project, **args)
        @project = project
        @code_open_delay = args[:code_open_delay] || 0
      end

      def system_in_root(script)
        Dir.chdir(project.expanded_root_path) do
          system script
        end
      end

      def system_in_project(script)
        Dir.chdir(project.expanded_project_path) do
          system script
        end
      end

      def project_path_exist?
        File.exist?(project.expanded_project_path)
      end

      def project_path_delete
        return unless project_path_exist?

        FileUtils.rm_rf(project.expanded_project_path)
      end

      def project_open_in_vscode
        sleep code_open_delay if code_open_delay.positive?

        Dir.chdir(project.expanded_project_path) do
          system('code .')
        end
      end

      def ask_destroy_existing_project
        question.yes?('Do you want to destroy the existing project folder')
      end

      def ask_exit_if_project_exists
        question.yes?('This project exists. Do you want to cancel new project creation?')
      end

      def exiting(message = 'Exiting')
        question.warn(message)
        nil
      end

      def create_kbuilder
        KManager::Cli::Commands::New.new.call(
          project_folder: project.expanded_project_path,
          builder_folder: File.join(project.expanded_project_path, '.builders'),
          description: project.description,
          user_story: project.story.user_story,
          repo_organization: project.github_organization,
          template: project.klue_template.name,
          log_level: nil,
          force: true
        )
      end

      private

      def question
        @question ||= prompt
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
k_starter-0.1.4 lib/k_starter/starters/base.rb
k_starter-0.1.3 lib/k_starter/starters/base.rb
k_starter-0.1.2 lib/k_starter/starters/base.rb
k_starter-0.1.1 lib/k_starter/starters/base.rb