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.
# File lib/taskjuggler/AppConfig.rb, line 71 def AppConfig.appName @@appName end
# File lib/taskjuggler/AppConfig.rb, line 67 def AppConfig.appName=(name) @@appName = name end
# File lib/taskjuggler/AppConfig.rb, line 95 def AppConfig.contact @@contact end
# File lib/taskjuggler/AppConfig.rb, line 91 def AppConfig.contact=(contact) @@contact = contact end
# File lib/taskjuggler/AppConfig.rb, line 87 def AppConfig.copyright @@copyright end
# File lib/taskjuggler/AppConfig.rb, line 83 def AppConfig.copyright=(copyright) @@copyright = copyright end
# 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.exists?(dir.untaint) end dirs end
# 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
# 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
# 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
# File lib/taskjuggler/AppConfig.rb, line 103 def AppConfig.license @@license end
# File lib/taskjuggler/AppConfig.rb, line 99 def AppConfig.license=(license) @@license = license end
# 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
# File lib/taskjuggler/AppConfig.rb, line 63 def AppConfig.packageInfo @@packageInfo end
# File lib/taskjuggler/AppConfig.rb, line 59 def AppConfig.packageInfo=(info) @@packageInfo = info end
# File lib/taskjuggler/AppConfig.rb, line 47 def AppConfig.packageName @@packageName end
# File lib/taskjuggler/AppConfig.rb, line 43 def AppConfig.packageName=(name) @@packageName = name end
# File lib/taskjuggler/AppConfig.rb, line 55 def AppConfig.softwareName @@softwareName end
# File lib/taskjuggler/AppConfig.rb, line 51 def AppConfig.softwareName=(name) @@softwareName = name end
# File lib/taskjuggler/AppConfig.rb, line 39 def AppConfig.version @@version end
# File lib/taskjuggler/AppConfig.rb, line 35 def AppConfig.version=(version) @@version = version end