What about this:
require 'ostruct'
Config = OpenStruct.new
Config.basepath = "/usr"
def Config.libpath
# Suggested by Nathaniel himself
@table[:libpath] || basepath + "/lib"
# The next alternatives require def Config.libpath=(libpath) ...
# instance_variable_defined?(:@libpath) ? @libpath : basepath + "/lib"
# or
# @libpath || basepath + "/lib" , depending on your needings
end
# Needed only if @table[:libpath] is not used
# def Config.libpath=(libpath)
# @libpath = libpath
# end
# Default basepath, default libpath
p Config.libpath #=> "/usr/lib"
# custom basepath, default libpath
Config.basepath = "/var"
p Config.libpath #=> "/var/lib"
# Custom libpath
Config.libpath = '/lib'
p Config.libpath #=> "/lib"