class AppConfig

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.

Public Class Methods

appName() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 73
def AppConfig.appName
  @@appName
end
appName=(name) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 69
def AppConfig.appName=(name)
  @@appName = name
end
authors() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 81
def AppConfig.authors
  @@authors
end
authors=(authors) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 77
def AppConfig.authors=(authors)
  @@authors = authors
end
contact() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 97
def AppConfig.contact
  @@contact
end
contact=(contact) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 93
def AppConfig.contact=(contact)
  @@contact = contact
end
dataDirs(baseDir = 'data') click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 109
def AppConfig.dataDirs(baseDir = 'data')
  dirs = dataSearchDirs(baseDir)
  # Remove non-existing directories from the list again
  dirs.delete_if do |dir|
    !File.exist?(dir)
  end
  dirs
end
dataFile(fileName) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 153
def AppConfig.dataFile(fileName)
  dirs = dataDirs
  dirs.each { |d| return d + fileName if File.exist?(d + fileName) }

  nil
end
dataFiles(fileName) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 145
def AppConfig.dataFiles(fileName)
  files = []
  dirs = dataDirs
  dirs.each { |d| files << d + fileName if File.exist?(d + fileName) }

  files
end
dataSearchDirs(baseDir = 'data') click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 118
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
license() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 105
def AppConfig.license
  @@license
end
license=(license) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 101
def AppConfig.license=(license)
  @@license = license
end
new() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 25
def initialize
  @@version = '0.0.0'
  @@packageName = 'unnamed'
  @@softwareName = 'unnamed'
  @@packageInfo = 'no info'
  @@appName = 'unnamed'
  @@authors = []
  @@copyright = ''
  @@contact = 'not specified'
  @@license = 'no license'
end
packageInfo() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 65
def AppConfig.packageInfo
  @@packageInfo
end
packageInfo=(info) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 61
def AppConfig.packageInfo=(info)
  @@packageInfo = info
end
packageName() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 49
def AppConfig.packageName
  @@packageName
end
packageName=(name) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 45
def AppConfig.packageName=(name)
  @@packageName = name
end
softwareName() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 57
def AppConfig.softwareName
  @@softwareName
end
softwareName=(name) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 53
def AppConfig.softwareName=(name)
  @@softwareName = name
end
version() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 41
def AppConfig.version
  @@version
end
version=(version) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 37
def AppConfig.version=(version)
  @@version = version
end