lookbook 0.3.3 → 0.3.4

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: e32460fbf9f0b09167b13eb27bacbb418f3a86425758caad4bdae58b738b06ff
4
- data.tar.gz: c92f69fc1098a2798f5a35f150ea5024ab89aade365b54106e8f4861600bcc8e
3
+ metadata.gz: 64f02e35ce90b1e27249752c3ea536ead68b7f6dba3a6bb0991dff8f29f63d92
4
+ data.tar.gz: effca06a618749eb6be51880929f417d0de03fe180d60e3df026065a7d0718ee
5
5
  SHA512:
6
- metadata.gz: b4b163234a695bdb337c4341db7203a457761a51e0dd4c9c9683f8e4035d0997658fccca15d35bc779d8cd9a2418556a9784e3d3fd64f776f20dbb22259c0c95
7
- data.tar.gz: dfebd15c82892d8f504d7f51f838f6f4318f04c178df3b2a97f961f30cb66b0c1718cd4e11f1af614f2af01216f14bb8f5468034737b2aff19d37f77c8690c35
6
+ metadata.gz: 3323004e8ea85985c687adfe184b0519b3b168676df1640cdb5ada335ffef304a1266e6ad239e62968261e2c043c98b23589dd28ed3913e22c620500fc76cdde
7
+ data.tar.gz: a60ed3e4b295875fcac660f560d75dc4ac9ecff3cf26a410c30837326c84e26e8e2cea4ad183879ee94049836ab68fb81b3d59c0aab6c081d239744184cfc374
@@ -152,7 +152,7 @@ module Lookbook
152
152
  end
153
153
 
154
154
  def previews
155
- Lookbook::Preview.all
155
+ Lookbook::Preview.all.sort_by(&:label)
156
156
  end
157
157
 
158
158
  def preview_controller
@@ -1,5 +1,5 @@
1
1
  <li id="<%= node.id %>" x-data="navNode" <% if node.hierarchy_depth == 1 %> class="py-1 border-b border-gray-300 cursor-pointer"<% end %> :class="{hidden}" x-cloak>
2
- <div @click="toggle(); if (open()) { <%= "navigate('#{path}')" if defined?(path) %>}" style="<%= nav_padding_style(node.hierarchy_depth) %>" class="hover:bg-gray-200 hover:bg-opacity-50">
2
+ <div @click="toggle" style="<%= nav_padding_style(node.hierarchy_depth) %>" class="hover:bg-gray-200 hover:bg-opacity-50">
3
3
  <div class="flex items-center cursor-pointer pr-3 py-[5px]">
4
4
  <svg class="feather w-3 h-3 mr-1 text-gray-500 flex-none">
5
5
  <use xlink:href="/lookbook-assets/feather-sprite.svg#chevron-down" x-show="open" x-cloak />
@@ -8,7 +8,7 @@
8
8
  <svg class="feather h-3.5 w-3.5 mr-1.5 flex-none text-indigo-500">
9
9
  <use xlink:href="/lookbook-assets/feather-sprite.svg#<%= node.type == :preview ? 'layers' : 'folder' %>" />
10
10
  </svg>
11
- <div class="truncate whitespace-nowrap text-left <%= "font-bold" if node.type == :preview %>">
11
+ <div class="truncate w-full whitespace-nowrap text-left <%= "font-bold" if node.type == :preview %>" @click.stop="toggle(); if (open()) { <%= "navigate('#{path}')" if defined?(path) %>}">
12
12
  <%= node.label %>
13
13
  </div>
14
14
  </div>
@@ -12,11 +12,11 @@ module Lookbook
12
12
  end
13
13
 
14
14
  def name
15
- @path ? @path.split("/").last : "root"
15
+ @path.present? ? @path.split("/").last : "root"
16
16
  end
17
17
 
18
18
  def label
19
- name.titleize
19
+ name&.titleize
20
20
  end
21
21
 
22
22
  def hierarchy_depth
@@ -24,7 +24,7 @@ module Lookbook
24
24
  end
25
25
 
26
26
  def items(sorted = true)
27
- sorted ? @items.sort_by(&:name) : @items
27
+ sorted ? @items.sort_by(&:label) : @items
28
28
  end
29
29
 
30
30
  def add(item)
@@ -23,6 +23,7 @@ module Lookbook
23
23
 
24
24
  options.auto_refresh = true if options.auto_refresh.nil?
25
25
  options.sort_examples = false if options.sort_examples.nil?
26
+ options.debug = false unless options.debug == true
26
27
 
27
28
  options.preview_paths = options.preview_paths.map(&:to_s)
28
29
  options.preview_paths += vc_options.preview_paths
@@ -43,10 +44,6 @@ module Lookbook
43
44
  end
44
45
  end
45
46
 
46
- initializer "lookbook.cable.logger" do
47
- Lookbook::Engine.cable.logger ||= Rails.logger
48
- end
49
-
50
47
  initializer "lookbook.parser.tags" do
51
48
  Lookbook::Parser.define_tags
52
49
  end
@@ -58,6 +55,15 @@ module Lookbook
58
55
  )
59
56
  end
60
57
 
58
+ initializer "lookbook.logging" do
59
+ if config.lookbook.debug == true
60
+ Lookbook::Engine.cable.logger ||= Rails.logger
61
+ else
62
+ Lookbook::Engine.cable.logger = Lookbook::NullLogger.new
63
+ config.action_view.logger = Lookbook::NullLogger.new
64
+ end
65
+ end
66
+
61
67
  initializer "lookbook.preview.extend" do
62
68
  ActiveSupport.on_load(:view_component) do
63
69
  ViewComponent::Preview.extend Lookbook::Preview
@@ -0,0 +1,47 @@
1
+ module Lookbook
2
+ class NullLogger
3
+ def unknown(*)
4
+ nil
5
+ end
6
+
7
+ def fatal(*)
8
+ nil
9
+ end
10
+
11
+ def fatal?
12
+ false
13
+ end
14
+
15
+ def error(*)
16
+ nil
17
+ end
18
+
19
+ def error?
20
+ false
21
+ end
22
+
23
+ def warn(*)
24
+ nil
25
+ end
26
+
27
+ def warn?
28
+ false
29
+ end
30
+
31
+ def info(*)
32
+ nil
33
+ end
34
+
35
+ def info?
36
+ false
37
+ end
38
+
39
+ def debug(*)
40
+ nil
41
+ end
42
+
43
+ def debug?
44
+ false
45
+ end
46
+ end
47
+ end
@@ -5,7 +5,7 @@ module Lookbook
5
5
  YARDOC_FILE_PATH = Rails.root.join("tmp/storage/.yardoc").to_s
6
6
 
7
7
  def initialize(paths)
8
- @paths = paths.map { |p| "#{p}/**/*.rb" }
8
+ @paths = paths.map { |p| "#{p}/**/*_preview.rb" }
9
9
  YARD::Registry.yardoc_file = YARDOC_FILE_PATH
10
10
  end
11
11
 
@@ -80,7 +80,7 @@ module Lookbook
80
80
 
81
81
  class << self
82
82
  def all
83
- ViewComponent::Preview.all
83
+ ViewComponent::Preview.all.sort_by(&:label)
84
84
  end
85
85
 
86
86
  def find(path)
@@ -90,8 +90,6 @@ module Lookbook
90
90
  def exists?(path)
91
91
  !!find(path)
92
92
  end
93
-
94
-
95
93
  end
96
94
 
97
95
  private
@@ -1,17 +1,19 @@
1
1
  module Lookbook
2
2
  module Taggable
3
3
  def lookbook_hidden?
4
- if code_object.tag(:hidden)
4
+ if code_object&.tag(:hidden)
5
5
  code_object.tag(:hidden).text.strip != "false"
6
6
  end
7
7
  end
8
8
 
9
9
  def lookbook_label
10
- code_object.tag(:label)&.text
10
+ code_object&.tag(:label)&.text
11
11
  end
12
12
 
13
13
  def lookbook_notes
14
- code_object.docstring.to_s.strip
14
+ if code_object&.docstring
15
+ code_object.docstring.to_s.strip
16
+ end
15
17
  end
16
18
 
17
19
  def lookbook_group
@@ -1,3 +1,3 @@
1
1
  module Lookbook
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
data/lib/lookbook.rb CHANGED
@@ -12,4 +12,5 @@ module Lookbook
12
12
  autoload :PreviewExample, "lookbook/preview_example"
13
13
  autoload :PreviewGroup, "lookbook/preview_group"
14
14
  autoload :Taggable, "lookbook/taggable"
15
+ autoload :NullLogger, "lookbook/null_logger"
15
16
  end
@@ -6,7 +6,7 @@ namespace :lookbook do
6
6
  task :bump_version, [:version] do |t, args|
7
7
  filename = Lookbook::Engine.root.join("lib/lookbook/version.rb")
8
8
  current_version = Lookbook::VERSION.to_s
9
- new_version = args[:version].sub("v", "").gsub("-",".")
9
+ new_version = args[:version].sub("v", "").tr("-", ".")
10
10
  file = File.open(filename)
11
11
  contents = file.read
12
12
  File.write(filename, contents.gsub(current_version, new_version))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lookbook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Perkins
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-16 00:00:00.000000000 Z
11
+ date: 2021-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -232,7 +232,7 @@ files:
232
232
  - lib/lookbook/collection.rb
233
233
  - lib/lookbook/engine.rb
234
234
  - lib/lookbook/lang.rb
235
- - lib/lookbook/navigation.rb
235
+ - lib/lookbook/null_logger.rb
236
236
  - lib/lookbook/parser.rb
237
237
  - lib/lookbook/preview.rb
238
238
  - lib/lookbook/preview_controller.rb
@@ -1,68 +0,0 @@
1
- module Lookbook
2
- class Navigation
3
- class << self
4
- def previews
5
- valid_previews = ViewComponent::Preview.all.filter { |preview| preview.get_visible_examples.any? && !preview.hidden? }
6
- valid_previews.sort_by(&:normalized_name)
7
- end
8
-
9
- def flat
10
- {
11
- flat: true,
12
- depth: 0,
13
- items: previews.map do |preview|
14
- nav_item_for_preview(preview, expand_name: true)
15
- end
16
- }
17
- end
18
-
19
- def nested
20
- nav = {flat: false, depth: 0, items: []}
21
- previews.each do |preview|
22
- current = nav
23
- depth = preview.path_parts.size
24
- path = ""
25
- preview.path_parts.each_with_index do |segment, i|
26
- target = current[:items].find { |item| item[:name] == segment }
27
- if target.nil?
28
- path = "#{path.present? ? path + "." : ""}#{segment}"
29
- target = {
30
- depth: i + 1,
31
- nested: true,
32
- name: path,
33
- label: segment.titleize,
34
- type: :group,
35
- items: []
36
- }
37
- current[:items].append(target)
38
- end
39
- if depth == i + 1
40
- target[:items].push(nav_item_for_preview(preview))
41
- else
42
- current = target
43
- end
44
- end
45
- end
46
- nav
47
- end
48
-
49
- private
50
-
51
- def nav_item_for_preview(preview, expand_name: false)
52
- {
53
- name: preview.preview_name.tr("/", "."),
54
- label: expand_name ? "#{preview.pretty_path}/#{preview.label}" : preview.label,
55
- type: :preview,
56
- examples: preview.get_visible_examples.map do |example|
57
- example_path = "#{preview.preview_name}/#{example.name}"
58
- {
59
- name: example.name,
60
- label: example.label,
61
- path: example_path
62
- }
63
- end
64
- }
65
- end
66
- end
67
- end
68
- end