lookbook 0.3.3 → 0.3.4

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: 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