Added module_access diagram filter (#101)
This commit is contained in:
@@ -9,4 +9,6 @@ diagrams:
|
||||
exclude:
|
||||
modules:
|
||||
- t00070.lib2
|
||||
module_access:
|
||||
- private
|
||||
using_namespace: clanguml::t00070
|
||||
@@ -8,4 +8,9 @@ template <typename T> class BB {
|
||||
};
|
||||
|
||||
enum class BBB { bbb1, bbb2 };
|
||||
}
|
||||
|
||||
module :private;
|
||||
namespace clanguml::t00070 {
|
||||
class BBBB { };
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
import t00070;
|
||||
import t00070.lib1;
|
||||
import t00070.lib2;
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ TEST_CASE("t00070", "[test-case][class]")
|
||||
REQUIRE_THAT(src, StartsWith("@startuml"));
|
||||
REQUIRE_THAT(src, EndsWith("@enduml\n"));
|
||||
|
||||
REQUIRE_THAT(src, !IsClass(_A("A")));
|
||||
REQUIRE_THAT(src, IsClass(_A("A")));
|
||||
REQUIRE_THAT(src, IsClass(_A("B")));
|
||||
REQUIRE_THAT(src, !IsClass(_A("C")));
|
||||
|
||||
@@ -43,6 +43,7 @@ TEST_CASE("t00070", "[test-case][class]")
|
||||
REQUIRE_THAT(src, !IsClassTemplate("CC", "T"));
|
||||
|
||||
REQUIRE_THAT(src, IsEnum(_A("BBB")));
|
||||
REQUIRE_THAT(src, !IsClass(_A("BBBB")));
|
||||
REQUIRE_THAT(src, !IsEnum(_A("CCC")));
|
||||
|
||||
save_puml(config.output_directory(), diagram->name + ".puml", src);
|
||||
@@ -53,6 +54,15 @@ TEST_CASE("t00070", "[test-case][class]")
|
||||
|
||||
using namespace json;
|
||||
|
||||
REQUIRE(IsClass(j, "A"));
|
||||
REQUIRE(IsClass(j, "B"));
|
||||
REQUIRE(!IsClass(j, "C"));
|
||||
|
||||
REQUIRE(InPublicModule(j, "A", "t00070"));
|
||||
REQUIRE(InPublicModule(j, "B", "t00070.lib1"));
|
||||
|
||||
REQUIRE(!IsClass(j, "BBBB"));
|
||||
|
||||
save_json(config.output_directory(), diagram->name + ".json", j);
|
||||
}
|
||||
|
||||
@@ -63,7 +73,7 @@ TEST_CASE("t00070", "[test-case][class]")
|
||||
using mermaid::IsClass;
|
||||
using mermaid::IsEnum;
|
||||
|
||||
REQUIRE_THAT(src, !IsClass(_A("A")));
|
||||
REQUIRE_THAT(src, IsClass(_A("A")));
|
||||
REQUIRE_THAT(src, IsClass(_A("B")));
|
||||
REQUIRE_THAT(src, !IsClass(_A("C")));
|
||||
|
||||
@@ -71,6 +81,7 @@ TEST_CASE("t00070", "[test-case][class]")
|
||||
REQUIRE_THAT(src, !IsClass(_A("CC<T>")));
|
||||
|
||||
REQUIRE_THAT(src, IsEnum(_A("BBB")));
|
||||
REQUIRE_THAT(src, !IsClass(_A("BBBB")));
|
||||
REQUIRE_THAT(src, !IsEnum(_A("CCC")));
|
||||
|
||||
save_mermaid(config.output_directory(), diagram->name + ".mmd", src);
|
||||
|
||||
@@ -1278,6 +1278,22 @@ bool IsClass(const nlohmann::json &j, const std::string &name)
|
||||
return e && e->at("type") == "class";
|
||||
}
|
||||
|
||||
bool InPublicModule(const nlohmann::json &j, const std::string &element,
|
||||
const std::string &module)
|
||||
{
|
||||
auto e = get_element(j, expand_name(j, element));
|
||||
return e && e->contains("module") && e->at("module")["name"] == module &&
|
||||
!e->at("module")["is_private"];
|
||||
}
|
||||
|
||||
bool InPrivateModule(const nlohmann::json &j, const std::string &element,
|
||||
const std::string &module)
|
||||
{
|
||||
auto e = get_element(j, expand_name(j, element));
|
||||
return e && e->contains("module") && e->at("module")["name"] == module &&
|
||||
e->at("module")["is_private"];
|
||||
}
|
||||
|
||||
bool IsAbstractClass(const nlohmann::json &j, const std::string &name)
|
||||
{
|
||||
auto e = get_element(j, expand_name(j, name));
|
||||
|
||||
Reference in New Issue
Block a user