packwerk_mermaid 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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