sharing namespace_dir and the namespace string methods

This commit is contained in:
lakedaemon
2016-05-28 08:15:43 +02:00
parent cd1493b082
commit 61b101d442
5 changed files with 67 additions and 102 deletions

View File

@@ -642,26 +642,19 @@ class PythonGenerator : public BaseGenerator {
bool needs_imports) {
if (!classcode.length()) return true;
std::string namespace_name;
std::string namespace_dir = path_;
auto &namespaces = parser_.namespaces_.back()->components;
for (auto it = namespaces.begin(); it != namespaces.end(); ++it) {
if (namespace_name.length()) {
namespace_name += ".";
namespace_dir += kPathSeparator;
}
namespace_name = *it;
if (it != namespaces.begin()) namespace_dir += kPathSeparator;
namespace_dir += *it;
EnsureDirExists(namespace_dir.c_str());
std::string init_py_filename = namespace_dir + "/__init__.py";
SaveFile(init_py_filename.c_str(), "", false);
}
std::string code = "";
BeginFile(namespace_name, needs_imports, &code);
BeginFile(LastNamespacePart(), needs_imports, &code);
code += classcode;
std::string filename = namespace_dir + kPathSeparator + def.name + ".py";
std::string filename = namespace_dir_ + kPathSeparator + def.name + ".py";
return SaveFile(filename.c_str(), code, false);
}
};