Module: Playbook::PbDocHelper
- Defined in:
- lib/playbook/pb_doc_helper.rb
Instance Method Summary collapse
- #aggregate_kits ⇒ Object
-
#get_kits(type = "rails") ⇒ Object
rubocop:enable Style/StringConcatenation.
- #nav_hash_array(link) ⇒ Object
- #pb_kit(kit: "", type: "rails", show_code: true, limit_examples: false, dark_mode: false) ⇒ Object
- #pb_kit_title(title) ⇒ Object
-
#pb_kits(type: "rails", limit_examples: false, dark_mode: false) ⇒ Object
Deal with lists of kits, used in Playbook doc and Externally rubocop:disable Style/StringConcatenation.
-
#render_pb_doc_kit(kit, type, limit_examples, code = true, dark_mode = false) ⇒ Object
rubocop:disable Style/OptionalBooleanParameter.
Instance Method Details
#aggregate_kits ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/playbook/pb_doc_helper.rb', line 50 def aggregate_kits = YAML.load_file(Playbook::Engine.root.join("dist/menu.yml")) all_kits = [] # Loop over each type (rails, react, swift, etc.) ["kits"].each do |_type, kits| kits.each do |kit| case kit when Hash kit_name = kit.keys.first existing_kit = all_kits.find { |k| k.is_a?(Hash) && k.keys.first == kit_name } if existing_kit existing_kit[kit_name] += kit[kit_name] unless kit[kit_name].nil? existing_kit[kit_name].uniq! existing_kit[kit_name].sort! else all_kits << { kit_name => kit[kit_name] } end when String all_kits << kit unless all_kits.include?(kit) end end end # Sort the top-level entries all_kits.sort_by! do |kit| kit.is_a?(Hash) ? kit.keys.first : kit end all_kits end |
#get_kits(type = "rails") ⇒ Object
rubocop:enable Style/StringConcatenation
45 46 47 48 |
# File 'lib/playbook/pb_doc_helper.rb', line 45 def get_kits(type = "rails") = YAML.load_file(Playbook::Engine.root.join("dist/menu.yml")) ["kits"][type] end |
#nav_hash_array(link) ⇒ Object
24 25 26 |
# File 'lib/playbook/pb_doc_helper.rb', line 24 def nav_hash_array(link) link.first.last end |
#pb_kit(kit: "", type: "rails", show_code: true, limit_examples: false, dark_mode: false) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/playbook/pb_doc_helper.rb', line 9 def pb_kit(kit: "", type: "rails", show_code: true, limit_examples: false, dark_mode: false) examples = pb_doc_kit_examples(kit, type) examples = examples.first(1) if limit_examples examples.map do |example| pb_rails "docs/kit_example", props: { kit: kit, example_title: example.values.first, example_key: example.keys.first, show_code: show_code, type: type, dark: dark_mode, } end.join.yield_self(&method(:raw)) end |
#pb_kit_title(title) ⇒ Object
5 6 7 |
# File 'lib/playbook/pb_doc_helper.rb', line 5 def pb_kit_title(title) title.remove("pb_").titleize.tr("_", " ") end |
#pb_kits(type: "rails", limit_examples: false, dark_mode: false) ⇒ Object
Deal with lists of kits, used in Playbook doc and Externally rubocop:disable Style/StringConcatenation
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/playbook/pb_doc_helper.rb', line 30 def pb_kits(type: "rails", limit_examples: false, dark_mode: false) display_kits = [] kits = get_kits(type) kits.each do |kit| nav_array = nav_hash_array(kit) next unless nav_array.is_a?(Array) nav_array.each do |sub_kit| display_kits << render_pb_doc_kit(sub_kit, type, limit_examples, false, dark_mode) end end raw("<div class='pb--docItem'>" + display_kits.join("</div><div class='pb--docItem'>") + "</div>") end |
#render_pb_doc_kit(kit, type, limit_examples, code = true, dark_mode = false) ⇒ Object
rubocop:disable Style/OptionalBooleanParameter
84 85 86 87 88 89 |
# File 'lib/playbook/pb_doc_helper.rb', line 84 def render_pb_doc_kit(kit, type, limit_examples, code = true, dark_mode = false) title = pb_doc_render_clickable_title(kit, type) ui = raw("<div class='pb--docItem-ui'> #{pb_kit(kit: kit, type: type, show_code: code, limit_examples: limit_examples, dark_mode: dark_mode)}</div>") title + ui end |