aboutsummaryrefslogtreecommitdiff
path: root/lib/configuration/configuration.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2020-04-20 20:10:25 +0300
committerAqua-sama <aqua@iserlohn-fortress.net>2020-04-20 22:08:20 +0300
commit3429622d754a87ecca98b3fbde994f24e40d34b4 (patch)
tree1e69a898fb2a364f4bb77afd3a9e1997d11cbd98 /lib/configuration/configuration.cpp
parentmove lib/about to src/about (diff)
downloadsmolbote-3429622d754a87ecca98b3fbde994f24e40d34b4.tar.xz
Rewrite configuration tests in catch2
- Drop s_conf check in operator<< as s_conf cannot be nullptr there - Add arithmetic type cast to string values
Diffstat (limited to 'lib/configuration/configuration.cpp')
-rw-r--r--lib/configuration/configuration.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/configuration/configuration.cpp b/lib/configuration/configuration.cpp
index 0fdd0c0..01a5080 100644
--- a/lib/configuration/configuration.cpp
+++ b/lib/configuration/configuration.cpp
@@ -19,14 +19,16 @@ static std::unique_ptr<Configuration> s_conf;
inline void strip(std::string &value)
{
value.erase(value.begin(), std::find_if(value.begin(), value.end(), std::bind1st(std::not_equal_to<char>(), ' ')));
+
value.erase(std::find_if(value.rbegin(), value.rend(), std::bind1st(std::not_equal_to<char>(), ' ')).base(), value.end());
}
Configuration::Configuration()
: use_global(true)
{
- if(!s_conf)
- throw new std::runtime_error("Trying to use default Configuration, but none has been set!");
+ if(!s_conf) {
+ throw std::runtime_error("Trying to use default Configuration, but none has been set!");
+ }
}
Configuration::Configuration(std::initializer_list<std::pair<std::string, conf_value_t>> l) noexcept
@@ -58,8 +60,9 @@ void Configuration::read(std::basic_istream<char> &input)
}
continue;
}
- if(line[0] == '#' || line.length() == 0)
+ if(line[0] == '#' || line.length() == 0) {
continue;
+ }
if(line.front() == '[' && line.back() == ']') {
section = line.substr(1, line.length() - 2) + '/';
@@ -108,10 +111,6 @@ Configuration *Configuration::instance()
std::ostream &operator<<(std::ostream &out, const Configuration &obj)
{
if(obj.use_global) {
- if(!s_conf) {
- throw new std::runtime_error("Trying to use default Configuration, but none has been set!");
- }
-
out << *s_conf;
return out;
}