#include #include #include #include #include "variable_name.h" Word::Word(std::string const& in_word) : word {in_word} { for (char& c : word) { c = std::tolower(c); } } std::string Word::get_capitalized() const { std::string output {word}; output.at(0) = std::toupper(output.at(0)); return output; } std::string Word::get_lowercase() const { return word; } Variable_Name::Variable_Name(std::string const& s) : word_list {} { std::istringstream iss {s}; std::string part {}; while(iss >> part) { word_list.push_back(Word{part}); } } void Variable_Name::print_camelcase(std::ostream& os) const { os << word_list.at(0).get_lowercase(); for (unsigned i {1}; i < word_list.size(); ++i) { os << word_list.at(i).get_capitalized(); } } void Variable_Name::print_snakecase(std::ostream& os) const { os << word_list.at(0).get_lowercase(); for (unsigned i {1}; i < word_list.size(); ++i) { os << "_" << word_list.at(i).get_lowercase(); } } bool Variable_Name::operator==(Variable_Name const& rhs) const { if (word_list.size() != rhs.word_list.size()) { return false; } for(unsigned i {}; i < word_list.size(); ++i) { if (word_list.at(i).get_lowercase() != rhs.word_list.at(i).get_lowercase()) { return false; } } return true; } bool Variable_Name::operator!=(Variable_Name const& rhs) const { return !(*this == rhs); }