# File lib/facets/core/fileutils/stage.rb, line 119
    def transfer_files( source, files, trans, stage_folder )
      Dir.chdir(source) do
        #trans = transfer_rules( rules )
        list = files

        # build transfer table
        folders, files = [], {}
        list.each do |from|
          to = trans.key?(from) ? trans[from] : from
          #to = File.join( stage_folder, to )
          if File.directory?( from )
            folders << to
          else
            files[ from ] = to
            # ensure creation of files' folder
            files_folder = File.dirname( to )
            folders << files_folder unless files_folder == '.'
          end
        end

        folders.delete('')
        folders.uniq!

        # make staging folder
        mkdir_p(stage_folder)

        # create folders
        folders.each do |to|
          to = File.join(stage_folder, to)
          mkdir_p( to )
        end

        # copy files to staging "mirror" folder
        files.each do |from, to|
          to = File.join( stage_folder, to )
          cp( from, to )
          #safe_ln( from, to )
        end
      end
    end