21 #include <boost/algorithm/string.hpp>
27 option_context::option_context(
const std::string &module_name_in,
28 po::options_description_easy_init po_options_in) :
29 module_name(module_name_in),
30 po_options(po_options_in)
33 option_context& option_context::operator()(
const char* name,
const char* description)
35 po_options(prepend_name(module_name, name).c_str(), description);
39 option_context& option_context::operator()(
const char* name,
const po::value_semantic* s)
41 po_options(prepend_name(module_name, name).c_str(), s);
45 option_context& option_context::operator()(
const char* name,
const po::value_semantic* s,
const char* description)
47 po_options(prepend_name(module_name, name).c_str(), s, description);
51 std::string option_context::prepend_name(std::string in_module_name,
const char *name_in)
53 in_module_name.push_back(
'.');
54 std::replace(in_module_name.begin(), in_module_name.end(),
'_',
'-');
55 boost::to_lower(in_module_name);
56 in_module_name.append(name_in);
57 return in_module_name;