Class ConfigTable_class
In: actionwebservice/setup.rb
Parent: Object

Methods

[]   []=   add   each   key?   load   lookup   new   new   remove   save   savefile  

Included Modules

Enumerable

Constants

ALIASES = { 'std-ruby' => 'stdruby', 'site-ruby-common' => 'siteruby', # For backward compatibility 'site-ruby' => 'siterubyver', # For backward compatibility 'bin-dir' => 'bindir', 'bin-dir' => 'bindir', 'rb-dir' => 'rbdir', 'so-dir' => 'sodir', 'data-dir' => 'datadir', 'ruby-path' => 'rubypath', 'ruby-prog' => 'rubyprog', 'ruby' => 'rubyprog', 'make-prog' => 'makeprog', 'make' => 'makeprog'

Public Class methods

[Source]

# File actionwebservice/setup.rb, line 201
  def initialize(items)
    @items = items
    @table = {}
    items.each do |i|
      @table[i.name] = i
    end
    ALIASES.each do |ali, name|
      @table[ali] = @table[name]
    end
  end

Public Instance methods

[Source]

# File actionwebservice/setup.rb, line 268
  def [](key)
    lookup(key).eval(self)
  end

[Source]

# File actionwebservice/setup.rb, line 272
  def []=(key, val)
    lookup(key).set val
  end

[Source]

# File actionwebservice/setup.rb, line 226
  def add(item)
    @items.push item
    @table[item.name] = item
  end

[Source]

# File actionwebservice/setup.rb, line 214
  def each(&block)
    @items.each(&block)
  end

[Source]

# File actionwebservice/setup.rb, line 218
  def key?(name)
    @table.key?(name)
  end

[Source]

# File actionwebservice/setup.rb, line 246
  def load
    begin
      t = dup()
      File.foreach(savefile()) do |line|
        k, v = *line.split(/=/, 2)
        t[k] = v.strip
      end
      t
    rescue Errno::ENOENT
      setup_rb_error $!.message + "#{File.basename($0)} config first"
    end
  end

[Source]

# File actionwebservice/setup.rb, line 222
  def lookup(name)
    @table[name] or raise ArgumentError, "no such config item: #{name}"
  end

[Source]

# File actionwebservice/setup.rb, line 238
  def new
    dup()
  end

[Source]

# File actionwebservice/setup.rb, line 231
  def remove(name)
    item = lookup(name)
    @items.delete_if {|i| i.name == name }
    @table.delete_if {|name, i| i.name == name }
    item
  end

[Source]

# File actionwebservice/setup.rb, line 259
  def save
    @items.each {|i| i.value }
    File.open(savefile(), 'w') {|f|
      @items.each do |i|
        f.printf "%s=%s\n", i.name, i.value if i.value
      end
    }
  end

[Source]

# File actionwebservice/setup.rb, line 242
  def savefile
    '.config'
  end

[Validate]