00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <config.h>
00021 #include <boost/algorithm/string.hpp>
00022 #include "drizzled/module/option_context.h"
00023
00024 namespace drizzled {
00025 namespace module {
00026
00027 option_context::option_context(const std::string &module_name_in,
00028 po::options_description_easy_init po_options_in) :
00029 module_name(module_name_in),
00030 po_options(po_options_in)
00031 { }
00032
00033 option_context& option_context::operator()(const char* name, const char* description)
00034 {
00035 po_options(prepend_name(module_name, name).c_str(), description);
00036 return *this;
00037 }
00038
00039 option_context& option_context::operator()(const char* name, const po::value_semantic* s)
00040 {
00041 po_options(prepend_name(module_name, name).c_str(), s);
00042 return *this;
00043 }
00044
00045 option_context& option_context::operator()(const char* name, const po::value_semantic* s, const char* description)
00046 {
00047 po_options(prepend_name(module_name, name).c_str(), s, description);
00048 return *this;
00049 }
00050
00051 std::string option_context::prepend_name(std::string in_module_name, const char *name_in)
00052 {
00053 in_module_name.push_back('.');
00054 std::replace(in_module_name.begin(), in_module_name.end(), '_', '-');
00055 boost::to_lower(in_module_name);
00056 in_module_name.append(name_in);
00057 return in_module_name;
00058 }
00059
00060 }
00061 }
00062