Class: Gem::Portage::Utils::ConfigFile
Class Method Summary collapse
Instance Method Summary collapse
- #[](var) ⇒ Object
- #exists? ⇒ Boolean
-
#initialize(path = "/etc/make.conf") ⇒ ConfigFile
constructor
A new instance of ConfigFile.
- #readable? ⇒ Boolean
- #search(var) ⇒ Object
- #succ ⇒ Object
- #to_s ⇒ Object
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
25 26 27 |
# File 'lib/g-gem/utils.rb', line 25 def exists? File.exists?(@path) end |
#readable? ⇒ 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 |
#succ ⇒ Object
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.(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.(parent, File.dirname(@path)) ConfigFile.new(File.join(parent, "make.defaults")) end end res.exists? ? res : res.succ unless res.nil? end |
#to_s ⇒ Object
21 22 23 |
# File 'lib/g-gem/utils.rb', line 21 def to_s @path end |