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
Source
# File lib/taskjuggler/AppConfig.rb, line 69 def AppConfig.appName=(name) @@appName = name end
Source
# File lib/taskjuggler/AppConfig.rb, line 93 def AppConfig.contact=(contact) @@contact = contact end
Source
# File lib/taskjuggler/AppConfig.rb, line 89 def AppConfig.copyright @@copyright end
Source
# File lib/taskjuggler/AppConfig.rb, line 85 def AppConfig.copyright=(copyright) @@copyright = copyright end
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
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
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
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
Source
# File lib/taskjuggler/AppConfig.rb, line 101 def AppConfig.license=(license) @@license = license end
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
Source
# File lib/taskjuggler/AppConfig.rb, line 65 def AppConfig.packageInfo @@packageInfo end
Source
# File lib/taskjuggler/AppConfig.rb, line 61 def AppConfig.packageInfo=(info) @@packageInfo = info end
Source
# File lib/taskjuggler/AppConfig.rb, line 49 def AppConfig.packageName @@packageName end
Source
# File lib/taskjuggler/AppConfig.rb, line 45 def AppConfig.packageName=(name) @@packageName = name end
Source
# File lib/taskjuggler/AppConfig.rb, line 57 def AppConfig.softwareName @@softwareName end
Source
# File lib/taskjuggler/AppConfig.rb, line 53 def AppConfig.softwareName=(name) @@softwareName = name end
Source
# File lib/taskjuggler/AppConfig.rb, line 37 def AppConfig.version=(version) @@version = version end