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 72
def AppConfig.appName
  @@appName
end
appName=(name) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 68
def AppConfig.appName=(name)
  @@appName = name
end
authors() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 80
def AppConfig.authors
  @@authors
end
authors=(authors) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 76
def AppConfig.authors=(authors)
  @@authors = authors
end
contact() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 96
def AppConfig.contact
  @@contact
end
contact=(contact) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 92
def AppConfig.contact=(contact)
  @@contact = contact
end
dataDirs(baseDir = 'data') click to toggle 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.exist?(dir)
  end
  dirs
end
dataFile(fileName) click to toggle 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
dataFiles(fileName) click to toggle 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
dataSearchDirs(baseDir = 'data') click to toggle 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
license() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 104
def AppConfig.license
  @@license
end
license=(license) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 100
def AppConfig.license=(license)
  @@license = license
end
new() click to toggle 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
packageInfo() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 64
def AppConfig.packageInfo
  @@packageInfo
end
packageInfo=(info) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 60
def AppConfig.packageInfo=(info)
  @@packageInfo = info
end
packageName() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 48
def AppConfig.packageName
  @@packageName
end
packageName=(name) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 44
def AppConfig.packageName=(name)
  @@packageName = name
end
softwareName() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 56
def AppConfig.softwareName
  @@softwareName
end
softwareName=(name) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 52
def AppConfig.softwareName=(name)
  @@softwareName = name
end
version() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 40
def AppConfig.version
  @@version
end
version=(version) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 36
def AppConfig.version=(version)
  @@version = version
end