class RBT::RemoveEmptyDirectories

Constants

NAMESPACE
#

NAMESPACE

#

Public Class Methods

new( this_directory = Dir.pwd, run_already = true ) click to toggle source
#

initialize

#
# File lib/rbt/utility_scripts/remove_empty_directories.rb, line 26
def initialize(
    this_directory = Dir.pwd,
    run_already    = true
  )
  reset
  set_base_directory(
    this_directory
  )
  run if run_already
end

Public Instance Methods

obtain_all_directories() click to toggle source
#

obtain_all_directories

#
# File lib/rbt/utility_scripts/remove_empty_directories.rb, line 57
def obtain_all_directories
  # ======================================================================= #
  # @directories will hold the directories that will be removed.
  # They will, however had, only be removed when they are empty.
  # ======================================================================= #
  @directories = Dir["#{@base_directory}*"].select {|entry|
    File.directory? entry
  }.map {|entry| rds(entry) }
  # reject_illegal_directories
end
reject_illegal_directories() click to toggle source
#

reject_illegal_directories

Here you can disallow certain directories. This is, however had, no longer in use.

#
# File lib/rbt/utility_scripts/remove_empty_directories.rb, line 74
def reject_illegal_directories
  @directories.reject! {|entry|
    entry.include? '/Depot' # So that we won't remove in /Depot/Temp.
  }
end
remove_empty_directories() click to toggle source
#

remove_empty_directories

This will remove empty directories.

However had, we will not remove directories that start with a '/' character and have only one '/' in total.

#
# File lib/rbt/utility_scripts/remove_empty_directories.rb, line 88
def remove_empty_directories
  @directories.each {|entry|
    if Dir.empty?(entry)
      shall_we_remove_this_directory = true
      msg_to_the_user = 'The directory at `'+sdir(entry)+'` is empty.'
      if entry.start_with?('/') and
         entry.count('/') == 1
        shall_we_remove_this_directory = false
      else
        msg_to_the_user << ' We will remove it now.'
      end
      opnn; e msg_to_the_user
      if shall_we_remove_this_directory
        remove_directory(entry) # Only remove it if it is not something like '/run'.
      end
    end
  }
end
reset() click to toggle source
#

reset

#
Calls superclass method RBT::Base#reset
# File lib/rbt/utility_scripts/remove_empty_directories.rb, line 40
def reset
  super()
  @namespace = NAMESPACE
end
run() click to toggle source
#

run

#
# File lib/rbt/utility_scripts/remove_empty_directories.rb, line 110
def run
  obtain_all_directories
  remove_empty_directories
end
set_base_directory(i = Dir.pwd) click to toggle source
#

set_base_directory

#
# File lib/rbt/utility_scripts/remove_empty_directories.rb, line 48
def set_base_directory(i = Dir.pwd)
  i = i.dup if i.frozen?
  i << '/' unless i.end_with? '/'
  @base_directory = i
end