playbook_ui_docs 13.9.0.pre.alpha.play845addswiftkitspage1273 → 13.9.0.pre.alpha.play845allkitsbytypes1260

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/dist/pb_doc_helper.rb +68 -32
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b82c50a09897d2b971044496fb5bea8b9f30fb9c8f2991a892dc13883e3951d1
4
- data.tar.gz: d8bb57b5365b737f0bc23575a623fa8da21389b2a990eed090484cd0cd541baf
3
+ metadata.gz: dc7fe4e21bdb2641590dd0a5f0e036c98c3eec1da820b7da4c0eef6aecd21e72
4
+ data.tar.gz: 4d226fad24ddd4de0bde80b186bf39f370f7ae3edaafe0c74d748bda8c8ae71c
5
5
  SHA512:
6
- metadata.gz: 7449c2f0a4acf5aae0bc86b4e7ed44e0fad4bcc2f6abfad0fb39b238ebd089c7591a635e8d5e0f92b15cedd6e283c856fddfbbc90a2e201fa0ea14d56e3e33eb
7
- data.tar.gz: 5405eee881eaee131bd96b5102e5a772fb709f3ed203cac4e262a85677c9b81cb8ea0d369d6fe03ee7675522ee2925d9ca0169787b599073cc5695ce56af461e
6
+ metadata.gz: 896f8f8d62dc6389baf7881d4d179de7406f1c459d6967a2516f40520d6f1cbbb22118f94e6412858de2e319625a91ec492517b99ed6be3dadc25cbdc0634a7a
7
+ data.tar.gz: 7c62432b978a4a1b2ba87cf87a91d728b416287d24027120cdff3893c512c966137a4c4761666c6b257edf033c42fe860be02ede1c341b14fd7302c644c123cb
@@ -26,45 +26,81 @@ module PlaybookWebsite
26
26
  end
27
27
 
28
28
  # Deal with lists of kits, used in Playbook doc and Externally
29
- # rubocop:disable Style/StringConcatenation
30
- def pb_kits(type: "rails", limit_examples: false, dark_mode: false, method: get_kits)
31
- display_kits = []
32
- kits = method
33
- kits.each do |kit|
34
- if kit.is_a?(Hash)
35
- nav_hash_array(kit).each do |sub_kit|
36
- display_kits << render_pb_doc_kit(sub_kit, type, limit_examples, false, dark_mode)
37
- end
38
- else
39
- display_kits << render_pb_doc_kit(kit, type, limit_examples, false, dark_mode)
40
- end
41
- end
42
- raw("<div class='pb--docItem'>" + display_kits.join("</div><div class='pb--docItem'>") + "</div>")
29
+ def pb_kits(type: "rails", limit_examples: false, dark_mode: false)
30
+ kits = get_kits(type)
31
+
32
+ # Iterate through the filtered kits and render them
33
+ kits.map do |kit|
34
+ render_pb_doc_kit(kit["name"], type, limit_examples, true, dark_mode)
35
+ end.join.html_safe
43
36
  end
44
- # rubocop:enable Style/StringConcatenation
45
-
46
- # rubocop:disable Naming/AccessorMethodName
47
- # def get_kits
48
- # menu = YAML.load_file(Playbook::Engine.root.join("dist/menu.yml"))
49
- # menu["kits"]
50
- # end
51
- def get_kits(_type = "rails")
52
- aggregate_kits || []
37
+
38
+ def get_kits(type = "rails")
39
+ kits = MENU["kits"] || []
40
+
53
41
  # Filter kits that have at least one component compatible with the type
42
+ kits.select do |kit|
43
+ kit["components"].any? { |component| component["platforms"].include?(type) }
44
+ end
54
45
  end
55
46
 
56
- def get_kits_pb_website
57
- menu = YAML.load_file(Rails.root.join("config/menu.yml"))
58
- menu["kits"]
47
+ def aggregate_kits
48
+ all_kits = []
49
+
50
+ MENU["kits"].each do |kit|
51
+ kit_name = kit["name"]
52
+ components = kit["components"].map { |c| c["name"] }
53
+
54
+ all_kits << if components.size == 1
55
+ components.first
56
+ else
57
+ { kit_name => components }
58
+ end
59
+ end
60
+
61
+ all_kits
59
62
  end
60
- # rubocop:enable Naming/AccessorMethodName
61
63
 
62
64
  # rubocop:disable Style/OptionalBooleanParameter
63
- def render_pb_doc_kit(kit, type, limit_examples, code = true, dark_mode = false)
64
- title = pb_doc_render_clickable_title(kit, type)
65
- ui = raw("<div class='pb--docItem-ui'>
66
- #{pb_kit(kit: kit, type: type, show_code: code, limit_examples: limit_examples, dark_mode: dark_mode)}</div>")
67
- title + ui
65
+ def render_pb_doc_kit(kit_name, type, limit_examples, code = true, dark_mode = false)
66
+ parent_kit = MENU["kits"].find { |kit| kit["name"] == kit_name }
67
+
68
+ # Initialize component_content as an empty string
69
+ component_content = ""
70
+ title = ""
71
+
72
+ # Check if parent_kit is nil
73
+ if parent_kit.nil?
74
+ title = pb_doc_render_clickable_title(kit_name, type)
75
+ component_content = raw("<div class='pb--docItem-ui'>
76
+ #{pb_kit(kit: kit_name, type: type, show_code: code, limit_examples: limit_examples, dark_mode: dark_mode)}</div>")
77
+ else
78
+ # Filter components based on the specified type
79
+ components = parent_kit["components"].select { |component| component["platforms"].include?(type) }
80
+
81
+ # If it's a parent with components, accumulate the UI content for child components
82
+ if components.any?
83
+ component_content = components.map do |component|
84
+ component_name = component["name"]
85
+ title = pb_doc_render_clickable_title(component_name, type) # Use component_name for the title
86
+
87
+ # Render the component UI content with the same styles/tags as the parent
88
+ component_ui = raw("<div class='pb--docItem-ui'>
89
+ #{pb_kit(kit: component_name, type: type, show_code: code, limit_examples: limit_examples, dark_mode: dark_mode)}
90
+ </div>")
91
+
92
+ # Combine the component name and component UI content
93
+ "#{title}#{component_ui}"
94
+ end.join.to_s
95
+ end
96
+ end
97
+
98
+ # Combine the component content and UI content for the parent kit
99
+ if parent_kit.nil?
100
+ "#{title}#{component_content}".to_s
101
+ else
102
+ component_content.to_s.to_s
103
+ end
68
104
  end
69
105
  # rubocop:enable Style/OptionalBooleanParameter
70
106
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui_docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.9.0.pre.alpha.play845addswiftkitspage1273
4
+ version: 13.9.0.pre.alpha.play845allkitsbytypes1260
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-10-06 00:00:00.000000000 Z
12
+ date: 2023-10-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: playbook_ui