Sha256: fd283516e2d600629645efb0f468d2f13b6544116730201780941b348a64f02e

Contents?: true

Size: 1.31 KB

Versions: 13

Compression:

Stored size: 1.31 KB

Contents

require 'fileutils'

class FolderCopier
    def initialize(source_path, destination_path)
        @source_path = source_path
        @destination_path = destination_path
    end

    def copy
        FileUtils.mkdir_p(@destination_path) unless File.exist?(@destination_path)
        copy_files_and_folders(@source_path, @destination_path)
        Solara.logger.debug("🚗 Copied\n\t↑ From: #{@source_path} \n\t↓ To:   #{@destination_path}")
    end

    private

    def copy_files_and_folders(source, destination)
        if File.file?(source)
            FileUtils.cp_r(source, destination)
        elsif File.directory?(source)
            Dir.foreach(source) do |item|
                next if item == '.' || item == '..'
                source_item_path = File.join(source, item)
                destination_item_path = File.join(destination, item)

                if File.directory?(source_item_path)
                    FileUtils.mkdir_p(destination_item_path) unless File.directory?(destination_item_path)
                    copy_files_and_folders(source_item_path, destination_item_path)
                else
                    FileUtils.cp_r(source_item_path, destination_item_path)
                end
            end
        else
            raise "Source is not a file or directory: #{source}"
        end
    end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
solara-0.7.4 solara/lib/core/scripts/folder_copier.rb
solara-0.7.3 solara/lib/core/scripts/folder_copier.rb
solara-0.7.2 solara/lib/core/scripts/folder_copier.rb
solara-0.7.1 solara/lib/core/scripts/folder_copier.rb
solara-0.7.0 solara/lib/core/scripts/folder_copier.rb
solara-0.6.0 solara/lib/core/scripts/folder_copier.rb
solara-0.5.0 solara/lib/core/scripts/folder_copier.rb
solara-0.4.0 solara/lib/core/scripts/folder_copier.rb
solara-0.3.0 solara/lib/core/scripts/folder_copier.rb
solara-0.2.4 solara/lib/core/scripts/folder_copier.rb
solara-0.2.3 solara/lib/core/scripts/folder_copier.rb
solara-0.2.2 solara/lib/core/scripts/folder_copier.rb
solara-0.2.1 solara/lib/core/scripts/folder_copier.rb