class Raykit::Environment

Provides functionality related to the development environment

Public Class Methods

admin?() click to toggle source
# File lib/raykit/environment.rb, line 60
def self.admin?
    rights=%x[whoami /priv]
    return rights.include?('SeCreateGlobalPrivilege')
end
get_dev_dir(name) click to toggle source

Get, and create if it does not exist, a specific development directory

# File lib/raykit/environment.rb, line 29
def self.get_dev_dir(name)
    dir = Pathname.new("#{Environment::root_dir}/#{name}")
    dir.mkpath
    dir.to_s().gsub('//','/')
end
get_dir_size(dir) click to toggle source

Get the size of a directory and its contents

# File lib/raykit/environment.rb, line 39
def self.get_dir_size(dir)
    Dir.glob(File.join(dir, '**', '*'))
        .map{ |f| File.size(f) }
        .inject(:+)
end
get_work_dir(url) click to toggle source
# File lib/raykit/environment.rb, line 35
def self.get_work_dir(url)
    Raykit::Environment::get_dev_dir('work') +'/' + url.gsub('://','/').gsub('.git','')
end
home_dir() click to toggle source

The user home directory

# File lib/raykit/environment.rb, line 23
def self.home_dir
    return normalize_path(ENV["USERPROFILE"]) if(ENV.include?("USERPROFILE"))
    normalize_path(ENV['HOME'])
end
local_application_data() click to toggle source
# File lib/raykit/environment.rb, line 56
def self.local_application_data
    return "#{ENV['USERPROFILE']}/AppData/Local".gsub('\\','/')
end
machine() click to toggle source
# File lib/raykit/environment.rb, line 45
def self.machine
    return ENV['COMPUTERNAME'] if !ENV['COMPUTERNAME'].nil? 
    machine = `hostname`
    machine = machine.split('.')[0] if machine.include?('.')
    return machine.strip
  end
normalize_path(name) click to toggle source

Normalize a directory or filename to use forward slashes

# File lib/raykit/environment.rb, line 7
def self.normalize_path(name)
    name.gsub('\\','/')
end
root_dir() click to toggle source

The root directory for the development environment. May be set using the environment variable DEV_ROOT, otherwise defaults to the user home directory

# File lib/raykit/environment.rb, line 14
def self.root_dir
    if(ENV['DEV_ROOT'].nil?)
        Environment::home_dir
    else
        normalize_path(ENV['DEV_ROOT'])
    end
end
user() click to toggle source
# File lib/raykit/environment.rb, line 52
def self.user
    ENV['USERNAME']
end
which(name) click to toggle source
# File lib/raykit/environment.rb, line 65
def self.which(name)
    if (File.exists?(name))
        return name
    end
    ["",".exe",".bat",".cmd"].each{|ext|
        aname = name + ext
        if (File.exists?(aname))
            return aname
        end
        ENV['PATH'].split(File::PATH_SEPARATOR).each{|path|
            apath = (path.gsub("\\","/") + '/' + aname).gsub("//","/")
            if(File.exists?(apath))
                return apath
            end
        }
    }
    ''
end