TeensyMud - 'A ruby mud server.'

Browse repository
back

configuration.rb

#
# file:: config.rb
# author:: Jon A. Lambert
# version:: 2.8.0
# date:: 01/19/2006
#
# This source code copyright (C) 2005, 2006 by Jon A. Lambert
# All rights reserved.
#
# Released under the terms of the TeensyMUD Public License
# See LICENSE file for additional information.
#

require 'singleton'
require 'yaml'

# The Config class is a singleton that allows class level configuration
#
class Configuration
include Singleton
attr_reader :options

def initialize
$cmdopts = get_options
@options = YAML::load_file($cmdopts['configfile'] || 'config.yaml')
rescue
$stderr.puts "WARNING - configuration file not found"
@options = {}
end

# only process configuration file option from command line
def get_options
myopts = {}
ARGV.each_with_index do |arg,i|
if (arg == '-c' || arg == '--config') && ARGV[i+1]
myopts['configfile'] = ARGV[i+1]
ARGV.delete_at(i+1)
ARGV.delete_at(i)
end
end
myopts
end
end

class Module

# configure adds the options method to a class which allows it to access
# the global configuration hash.
#
# [+name+] an arrays of symbols representing the attributes on the object.
def configuration()
class_eval <<-EOD
def options
Configuration.instance.options
end
EOD
end

end