Sha256: 3cd164066aa315728ca14cc12d01b0507829f1a2b649297c9b2a3c99a4cd48e6

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

require 'fileutils'

module PicoApi
  module Generators
    module Commands
      class CreateBasicStructure
        def self.call(project_name)
          project_name_converter =
            ::PicoApi::Generators::ProjectNameConverter.new(project_name)

          new(project_name_converter).call
        end

        def initialize(project_name_converter)
          @project_name_converter = project_name_converter
        end

        def call
          create_bin_folder
          create_lib_folder
          create_config_folder
        end

        private

        attr_reader :project_name_converter

        def create_bin_folder
          FileUtils.mkdir_p("#{snakecased_name}/bin")
        end

        def create_lib_folder
          FileUtils.mkdir_p("#{snakecased_name}/lib/#{snakecased_name}")
        end

        def create_config_folder
          FileUtils.mkdir_p("#{snakecased_name}/config")
        end

        def snakecased_name
          project_name_converter.snakecased
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pico_api-0.0.6 lib/pico_api/generators/commands/create_basic_structure.rb
pico_api-0.0.5 lib/pico_api/generators/commands/create_basic_structure.rb