class Raykit::Environment

Provides functionality related to the development environment

def self.get_dev_dir(name)

Get, and create if it does not exist, a specific development directory
def self.get_dev_dir(name)
    dir = Pathname.new("#{Environment::root_dir}/#{name}")
    dir.mkpath
    dir.to_s
end

def self.get_dir_size(dir)

Get the size of a directory and its contents
def self.get_dir_size(dir)
    Dir.glob(File.join(dir, '**', '*'))
        .map{ |f| File.size(f) }
        .inject(:+)
end

def self.home_dir

The user home directory
def self.home_dir
    return normalize_path(ENV["USERPROFILE"]) if(ENV.include?("USERPROFILE"))
    normalize_path(ENV['HOME'])
end

def self.normalize_path(name)

Normalize a directory or filename to use forward slashes
def self.normalize_path(name)
    name.gsub('\\','/')
end

def self.root_dir

otherwise defaults to the user home directory
May be set using the environment variable DEV_ROOT,
The root directory for the development environment.
def self.root_dir
    if(ENV['DEV_ROOT'].nil?)
        Environment::home_dir
    else
        normalize_path(ENV['DEV_ROOT'])
    end
end