packwerk_mermaid 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d5fc2720c27d3ef40d87efaa581629539ca1d5e50216fb912f4c83bdd0505b3
4
- data.tar.gz: 186f3583d0c2292740fa888674c47f949709e9406423fdbfd55854d15182faec
3
+ metadata.gz: 7f9d51ff22380dff4d6501057614acee4629f2b47fed7f01c5333f8bb0b9b7b7
4
+ data.tar.gz: 32ed71f954a9607746c4ce1a47e89d38d93542956bcea7fe3e5e5776b730513f
5
5
  SHA512:
6
- metadata.gz: ac63ab51ec034b0dd259edfe5eb9a7f51b23500d38c30e7207521ebfd481fe590d0070c58fd4b96bc1271ed34d5bccc26a4d6949e536b616592dd7135a9c28be
7
- data.tar.gz: 373a1e0616850c5172c4debff7a183dc2aec5771119a6817bac091f28038acdb82675af4a140d6cf65c68e5a82c3d4f61d04462525d9ef0478b634a5b803e13e
6
+ metadata.gz: 6fdd24fe73d35388c92c7012018a53a1d5a2f2226b430e231f81793e3dc33a735b8e3bdadc9605cd1441de725ddd89529779dae1abddc28766286079ed0b68c7
7
+ data.tar.gz: 7a477014e51d95de669975153e4b7c060c43ae2aa9bb4759bf0514e2ae6d523f6787eb83a4142264b682cb0b5cb6c7aaaea9b9ec4c486594a35ed46a7248c9d9
data/README.md CHANGED
@@ -1,6 +1,29 @@
1
1
  # Packwerk Mermaid
2
2
 
3
- This is a simple gem for a project using [packwerk](https://github.com/Shopify/packwerk) to generate a [Mermaid](https://mermaid.js.org/) diagram.
3
+ This is a simple gem for a project using [packwerk](https://github.com/Shopify/packwerk) to generate a [Mermaid](https://mermaid.js.org/) diagram. When you generate the output, you can get a diagram that looks like this:
4
+
5
+ ```mermaid
6
+ ---
7
+ title: App Name
8
+ ---
9
+ flowchart TD
10
+ 0("Nelson Hamill") --> 1("Msgr. Cynthia Dickens");
11
+ 0 --> 2("Adell Friesen MD");
12
+ 2 --> 3("Cortez Purdy");
13
+ 2 --> 4("Renaldo Collier");
14
+ 2 --> 5("Titus Schamberger");
15
+ 2 --> 6("Efren Kuhlman");
16
+ 2 --> 7("Osvaldo Legros Esq.");
17
+ 2 --> 8("Byron Hammes");
18
+ 6 --> 9("Carlo Nolan DDS");
19
+ 3 --> 9;
20
+ 1 --> 2;
21
+ 10("Mayola Kovacek") --> 2;
22
+ 10 --> 1;
23
+ 10 --> 5;
24
+ 10 --> 6;
25
+
26
+ ```
4
27
 
5
28
  ## Installation
6
29
 
@@ -49,11 +72,14 @@ configuration = PackwerkMermaid.configure do |config|
49
72
  # Flexible way to rename packages
50
73
  config.packwerk_package_name_callback = lambda { |name| name.gsub('packs/', '') }
51
74
 
52
- # Hide packages from the diagram
75
+ # Simple static mapping of packages to hide
53
76
  config.packwerk_packages_hidden = [
54
77
  'packs/utilities',
55
78
  'packs/legacy_service',
56
79
  ]
80
+
81
+ # Flexible way to show/hide packages
82
+ config.packwerk_package_name_callback = lambda { |node_name, parent_node_name| should_show?(node_name) }
57
83
  end
58
84
 
59
85
  PackwerkMermaid::PackwerkFlowchart.new(configuration).generate
@@ -69,4 +95,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
69
95
 
70
96
  ## Code of Conduct
71
97
 
72
- Everyone interacting in the Packs::Mermaid project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/packs-mermaid/blob/master/CODE_OF_CONDUCT.md).
98
+ Everyone interacting in the PackwerkMermaid project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/bwillis/packwerk_mermaid/blob/master/CODE_OF_CONDUCT.md).
@@ -6,6 +6,7 @@ module PackwerkMermaid
6
6
  :packwerk_package_name_mapping,
7
7
  :packwerk_loader,
8
8
  :packwerk_package_name_callback,
9
+ :packwerk_package_visibility_callback,
9
10
  :packwerk_packages_hidden,
10
11
  :mermaid_title,
11
12
  :mermaid_text_type,
@@ -16,6 +17,7 @@ module PackwerkMermaid
16
17
  @packwerk_package_name_mapping = {}
17
18
  @packwerk_loader = Proc.new { |dir| Packwerk::PackageSet.load_all_from(dir) }
18
19
  @packwerk_packages_hidden = []
20
+ @packwerk_package_visibility_callback = Proc.new { |_node_name, _parent_node_name| true }
19
21
  @mermaid_title = nil
20
22
  @mermaid_text_type = MermaidFlowchartBuilder::TEXT
21
23
  @mermaid_shape_style = MermaidFlowchartBuilder::RECTANGLE_ROUNDED
@@ -23,6 +23,7 @@ module PackwerkMermaid
23
23
 
24
24
  package.dependencies.each do |dependency_name|
25
25
  next if @configuration.packwerk_packages_hidden.include? dependency_name
26
+ next unless @configuration.packwerk_package_visibility_callback.call(dependency_name, package.name)
26
27
 
27
28
  builder.add_edge(
28
29
  rename_package(package.name),
@@ -2,6 +2,6 @@
2
2
 
3
3
  module PackwerkMermaid
4
4
  class Version
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packwerk_mermaid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Willis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-17 00:00:00.000000000 Z
11
+ date: 2023-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: packwerk