Class: Rake::Delphi::EnvVariables
- Inherits:
-
Hash
- Object
- Hash
- Rake::Delphi::EnvVariables
- Defined in:
- lib/rake/delphi/envvariables.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add(var, value) ⇒ Object
- #expand(value) ⇒ Object
- #expand_global(value) ⇒ Object
- #expand_vars ⇒ Object
-
#initialize(regpath, delphidir) ⇒ EnvVariables
constructor
A new instance of EnvVariables.
- #readreg(regpath) ⇒ Object
Constructor Details
#initialize(regpath, delphidir) ⇒ EnvVariables
32 33 34 35 36 37 38 39 40 |
# File 'lib/rake/delphi/envvariables.rb', line 32 def initialize(regpath, delphidir) readreg(regpath) _dir = delphidir.gsub(/\/$/, '') add('DELPHI', _dir) add('BDS', _dir) add('BDSLIB', _dir + '/Lib') Logger.trace(Logger::TRACE, self) end |
Class Method Details
.delphi_version ⇒ Object
7 8 9 |
# File 'lib/rake/delphi/envvariables.rb', line 7 def self.delphi_version ENV['DELPHI_VERSION'] end |
Instance Method Details
#add(var, value) ⇒ Object
42 43 44 |
# File 'lib/rake/delphi/envvariables.rb', line 42 def add(var, value) self[var] = value end |
#expand(value) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/rake/delphi/envvariables.rb', line 54 def (value) self.each do |name, val| value.gsub!("$(#{name})", val) value = (value) end value end |
#expand_global(value) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/rake/delphi/envvariables.rb', line 46 def (value) value.gsub!(/\$\((?'env_name'\w+)\)/) do |match| name = Regexp.last_match[:env_name].upcase ENV[name] || match end value end |
#expand_vars ⇒ Object
62 63 64 65 66 |
# File 'lib/rake/delphi/envvariables.rb', line 62 def self.each do |name, value| self[name] = (value) end end |
#readreg(regpath) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rake/delphi/envvariables.rb', line 11 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| reg_type, value = reg.read(name) value.gsub!('\\', '/') add(name, value) end end rescue ::Win32::Registry::Error Logger.trace(Logger::DEBUG, "No reg key '%s'?!" % regpath) end rescue LoadError Logger.trace(Logger::DEBUG, 'No `win32/registry` gem?!') end end |