Class: Gem::Portage::Utils::ConfigFile

Inherits:
Object
  • Object
show all
Defined in:
lib/g-gem/utils.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path = "/etc/make.conf") ⇒ ConfigFile

Returns a new instance of ConfigFile.



17
18
19
# File 'lib/g-gem/utils.rb', line 17

def initialize(path="/etc/make.conf")
  @path = path
end

Class Method Details

.[](var) ⇒ Object



78
79
80
# File 'lib/g-gem/utils.rb', line 78

def [](var)
  new.search(var)
end

Instance Method Details

#[](var) ⇒ Object



61
62
63
64
65
66
67
# File 'lib/g-gem/utils.rb', line 61

def [](var)
  var = var.to_sym
  cache[var] or \
  if readable? && !File.read(@path).scan(/^\s*#{var.to_s}\s*=\s*(.+)/).empty?
    cache[var] = $1.gsub(/^"|"$/, '') unless $1.nil?
  end
end

#exists?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/g-gem/utils.rb', line 25

def exists?
  File.exists?(@path)
end

#readable?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/g-gem/utils.rb', line 29

def readable?
  File.readable?(@path)
end

#search(var) ⇒ Object



69
70
71
72
73
74
75
# File 'lib/g-gem/utils.rb', line 69

def search(var)
  self[var] or \
  begin
    succ_conf = self.succ
    succ_conf.search(var) if succ_conf
  end
end

#succObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/g-gem/utils.rb', line 38

def succ
  res = case @path
        when "/etc/make.conf"
          ConfigFile.new("/etc/profile/make.defaults")
        when "/etc/profile/make.defaults"
          ConfigFile.new(File.join(File.expand_path(File.readlink("/etc/make.profile"), "/etc"), "make.defaults"))
        else
          parent = @path.sub(/make.defaults$/, 'parent')
          if File.readable?(parent)
            File.open(parent, 'r') do |f|
        f.each_line do |line|
          next if /^\s*$|^\s*#.*$/ === line
          parent = line.chomp
          break
        end
      end
            parent = File.expand_path(parent, File.dirname(@path))
            ConfigFile.new(File.join(parent, "make.defaults"))
          end
        end
  res.exists? ? res : res.succ unless res.nil?
end

#to_sObject



21
22
23
# File 'lib/g-gem/utils.rb', line 21

def to_s
  @path
end