Class: Raykit::Environment

Inherits:
Object
  • Object
show all
Defined in:
lib/raykit/environment.rb

Overview

Provides functionality related to the development environment

Class Method Summary collapse

Class Method Details

.admin?Boolean

Returns:



57
58
59
60
# File 'lib/raykit/environment.rb', line 57

def self.admin?
    rights=%x[whoami /priv]
    return rights.include?('SeCreateGlobalPrivilege')
end

.get_dev_dir(name) ⇒ Object

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



29
30
31
32
33
# 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
end

.get_dir_size(dir) ⇒ Object

Get the size of a directory and its contents



36
37
38
39
40
# File 'lib/raykit/environment.rb', line 36

def self.get_dir_size(dir)
    Dir.glob(File.join(dir, '**', '*'))
        .map{ |f| File.size(f) }
        .inject(:+)
end

.home_dirObject

The user home directory



23
24
25
26
# 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_dataObject



53
54
55
# File 'lib/raykit/environment.rb', line 53

def self.local_application_data
    return "#{ENV['USERPROFILE']}/AppData/Local".gsub('\\','/')
end

.machineObject



42
43
44
45
46
47
# File 'lib/raykit/environment.rb', line 42

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) ⇒ Object

Normalize a directory or filename to use forward slashes



7
8
9
# File 'lib/raykit/environment.rb', line 7

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

.root_dirObject

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



14
15
16
17
18
19
20
# 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

.userObject



49
50
51
# File 'lib/raykit/environment.rb', line 49

def self.user
    ENV['USERNAME']
end

.which(name) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/raykit/environment.rb', line 62

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