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 71
def AppConfig.appName
  @@appName
end
appName=(name) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 67
def AppConfig.appName=(name)
  @@appName = name
end
authors() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 79
def AppConfig.authors
  @@authors
end
authors=(authors) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 75
def AppConfig.authors=(authors)
  @@authors = authors
end
contact() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 95
def AppConfig.contact
  @@contact
end
contact=(contact) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 91
def AppConfig.contact=(contact)
  @@contact = contact
end
dataDirs(baseDir = 'data') click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 107
def AppConfig.dataDirs(baseDir = 'data')
  dirs = dataSearchDirs(baseDir)
  # Remove non-existing directories from the list again
  dirs.delete_if do |dir|
    !File.exist?(dir.untaint)
  end
  dirs
end
dataFile(fileName) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 151
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 143
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 116
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 103
def AppConfig.license
  @@license
end
license=(license) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 99
def AppConfig.license=(license)
  @@license = license
end
new() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 23
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 63
def AppConfig.packageInfo
  @@packageInfo
end
packageInfo=(info) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 59
def AppConfig.packageInfo=(info)
  @@packageInfo = info
end
packageName() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 47
def AppConfig.packageName
  @@packageName
end
packageName=(name) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 43
def AppConfig.packageName=(name)
  @@packageName = name
end
softwareName() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 55
def AppConfig.softwareName
  @@softwareName
end
softwareName=(name) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 51
def AppConfig.softwareName=(name)
  @@softwareName = name
end
version() click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 39
def AppConfig.version
  @@version
end
version=(version) click to toggle source
# File lib/taskjuggler/AppConfig.rb, line 35
def AppConfig.version=(version)
  @@version = version
end