lib/raykit/environment.rb



require 'pathname'

module Raykit
    # Provides functionality related to the development environment

    class Environment
        # Normalize a directory or filename to use forward slashes

        def self.normalize_path(name)
            name.gsub('\\','/')
        end

        # The root directory for the development environment.

        # May be set using the environment variable DEV_ROOT,

        # otherwise defaults to the user home directory

        def self.root_dir
            if(ENV['DEV_ROOT'].nil?)
                Environment::home_dir
            else
                normalize_path(ENV['DEV_ROOT'])
            end
        end
         
        # The user home directory

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

        # 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

        # 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
    end
end