class Rake::Delphi::EnvVariables
Public Class Methods
delphi_version()
click to toggle source
# File lib/rake/delphi/envvariables.rb, line 7 def self.delphi_version ENV['DELPHI_VERSION'].to_i end
new(regpath, delphidir)
click to toggle source
# File lib/rake/delphi/envvariables.rb, line 11 def initialize(regpath, delphidir) readreg(regpath) _dir = delphidir.gsub(/\/$/, '') add('DELPHI', _dir) add('BDS', _dir) add('BDSLIB', _dir + '/Lib') expand_vars Logger.trace(Logger::TRACE, self) end
Public Instance Methods
expand(value)
click to toggle source
# File lib/rake/delphi/envvariables.rb, line 21 def expand(value) value = expand_value(value, self) value = expand_value(value, ENV) end
Private Instance Methods
add(var, value)
click to toggle source
# File lib/rake/delphi/envvariables.rb, line 50 def add(var, value) self[var] = value end
expand_value(value, values)
click to toggle source
# File lib/rake/delphi/envvariables.rb, line 54 def expand_value(value, values) value.gsub(/\$\((?'env_name'\w+)\)/) do |match| name = Regexp.last_match[:env_name].upcase values[name] || match end end
expand_vars()
click to toggle source
# File lib/rake/delphi/envvariables.rb, line 61 def expand_vars self.each do |name, value| self[name] = expand(value) end end
readreg(regpath)
click to toggle source
# File lib/rake/delphi/envvariables.rb, line 27 def readreg(regpath) return unless regpath begin require 'win32/registry' Logger.trace(Logger::DEBUG, "Reading environment variables from '#{regpath}'") begin ::Win32::Registry::HKEY_CURRENT_USER.open(regpath) do |reg| reg.each do |name| Logger.trace(Logger::DEBUG, "Reading: #{name}") reg_type, value = reg.read(name) Logger.trace(Logger::TRACE, "Value: #{value}") value.gsub!('\\', '/') add(name, value) end end rescue ::Win32::Registry::Error => e Logger.trace(Logger::DEBUG, "No reg key '%s'?! %s" % [regpath, e.message]) end rescue LoadError Logger.trace(Logger::DEBUG, 'No `win32/registry` gem?!') end end