Sha256: 8ab007672123fef036e2d44d2b9e64cb6ab23fe3364d318267cbdb0c3c20b38a

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'
require 'ehbrs_ruby_utils/fs/selected/build_file'

module EhbrsRubyUtils
  module Fs
    class Selected
      class Build
        DEFAULT_TARGET_BASENAME_PROC = ::Proc.new { |basename| basename }

        attr_reader :selected, :target_dir, :target_basename_proc

        def initialize(selected, target_dir, &target_basename_proc)
          @selected = selected
          @target_dir = target_dir.to_pathname
          @target_basename_proc = target_basename_proc.presence || DEFAULT_TARGET_BASENAME_PROC
        end

        def perform
          clear_target_dir
          link_selected_found
        end

        private

        def clear_target_dir
          target_dir.children.each do |c|
            c.unlink if c.symlink? && c.directory?
          end
        end

        def link_selected_found
          selected.found.each do |found|
            ::EhbrsRubyUtils::Fs::Selected::BuildFile.new(self, found).perform
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
ehbrs_ruby_utils-0.11.0 lib/ehbrs_ruby_utils/fs/selected/build.rb
ehbrs-tools-0.27.0 vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/fs/selected/build.rb