Class AppConfig
In: lib/taskjuggler/AppConfig.rb
Parent: Object

This class provides central management of configuration data to an application. It stores the version number, the name of the application and the suite it belongs to. It also holds copyright and license information. These infos have to be set in the main module of the application right after launch. Then, all other modules can retrieve them from the global instance as needed.

Methods

Public Class methods

[Source]

# File lib/taskjuggler/AppConfig.rb, line 72
  def AppConfig.appName
    @@appName
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 68
  def AppConfig.appName=(name)
    @@appName = name
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 80
  def AppConfig.authors
    @@authors
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 76
  def AppConfig.authors=(authors)
    @@authors = authors
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 96
  def AppConfig.contact
    @@contact
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 92
  def AppConfig.contact=(contact)
    @@contact = contact
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 88
  def AppConfig.copyright
    @@copyright
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 84
  def AppConfig.copyright=(copyright)
    @@copyright = copyright
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 108
  def AppConfig.dataDirs(baseDir = 'data')
    dirs = dataSearchDirs(baseDir)
    # Remove non-existing directories from the list again
    dirs.delete_if do |dir|
      !File.exists?(dir.untaint)
    end
    dirs
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 152
  def AppConfig.dataFile(fileName)
    dirs = dataDirs
    dirs.each { |d| return d + fileName if File.exist?(d + fileName) }

    nil
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 144
  def AppConfig.dataFiles(fileName)
    files = []
    dirs = dataDirs
    dirs.each { |d| files << d + fileName if File.exist?(d + fileName) }

    files
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 117
  def AppConfig.dataSearchDirs(baseDir = 'data')
    rubyLibDir = RbConfig::CONFIG['rubylibdir']
    rubyBaseDir, versionDir = rubyLibDir.scan(/(.*\/)(.*)/)[0]

    dirs = []
    if ENV['TASKJUGGLER_DATA_PATH']
      ENV['TASKJUGGLER_DATA_PATH'].split(':').each do |path|
        dirs << path + "/#{baseDir}/"
      end
    end

    # Find the data dir relative to the source of this file. This should
    # always work.
    dirs << File.join(File.dirname(__FILE__), '..', '..', baseDir)

    # This hopefully works for all setups. Otherwise we have to add more
    # alternative pathes.
    # This one is for RPM based distros like Novell
    dirs << rubyBaseDir + "gems/" + versionDir + '/gems/' \
        + @@packageName + '-' + @@version + "/#{baseDir}/"
    # This one is for Debian based distros
    dirs << rubyLibDir + '/gems/' \
        + @@packageName + '-' + @@version + "/#{baseDir}/"

    dirs
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 104
  def AppConfig.license
    @@license
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 100
  def AppConfig.license=(license)
    @@license = license
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 24
  def initialize
    @@version = '0.0.0'
    @@packageName = 'unnamed'
    @@softwareName = 'unnamed'
    @@packageInfo = 'no info'
    @@appName = 'unnamed'
    @@authors = []
    @@copyright = []
    @@contact = 'not specified'
    @@license = 'no license'
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 64
  def AppConfig.packageInfo
    @@packageInfo
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 60
  def AppConfig.packageInfo=(info)
    @@packageInfo = info
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 48
  def AppConfig.packageName
    @@packageName
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 44
  def AppConfig.packageName=(name)
    @@packageName = name
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 56
  def AppConfig.softwareName
    @@softwareName
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 52
  def AppConfig.softwareName=(name)
    @@softwareName = name
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 40
  def AppConfig.version
    @@version
  end

[Source]

# File lib/taskjuggler/AppConfig.rb, line 36
  def AppConfig.version=(version)
    @@version = version
  end

[Validate]