tailwind_dsl 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/tailwind_dsl/etl/component_structures/data.rb +2 -2
- data/lib/tailwind_dsl/etl/component_structures/generator.rb +4 -2
- data/lib/tailwind_dsl/etl/element.rb +22 -0
- data/lib/tailwind_dsl/etl/raw_components/schema/design_system.rb +6 -11
- data/lib/tailwind_dsl/etl/raw_components/schema/group.rb +8 -9
- data/lib/tailwind_dsl/etl/raw_components/schema/source_file.rb +8 -13
- data/lib/tailwind_dsl/etl/raw_components/schema/target_file.rb +8 -10
- data/lib/tailwind_dsl/etl/raw_components/schema/uikit.rb +1 -1
- data/lib/tailwind_dsl/etl/raw_components/transformer.rb +6 -5
- data/lib/tailwind_dsl/version.rb +1 -1
- data/lib/tailwind_dsl.rb +2 -0
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12b4cb1ead96f5fff7c3314de7a9c1cbf0acc4543749a16bd11ad1044f54c3bb
|
4
|
+
data.tar.gz: afc589fd9df719bf67b6ab61088dd65345d39b617af6a5924f0a07a027991661
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a88b93f3410119b8af4521b75fea20af52dfa84bae7b617ca163cfd3a600eeb36ff534ae470b2a99db4307313815657f05426618b3fbf32c08ba2b3d21658761
|
7
|
+
data.tar.gz: b4bf2cc19b04b6ff284cfeba11c152921c869c989f53cb1efcca20aa2a3e71de84d08a544c7709512dd5bcd44a9d72c2e2470900d5e940c988dd58676654e403
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [0.0.6](https://github.com/klueless-io/tailwind_dsl/compare/v0.0.5...v0.0.6) (2022-10-12)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* add tests for generating component structures ([1299d63](https://github.com/klueless-io/tailwind_dsl/commit/1299d6341c680a21c9fd2dbbcfd7422e5ceab443))
|
7
|
+
|
1
8
|
## [0.0.5](https://github.com/klueless-io/tailwind_dsl/compare/v0.0.4...v0.0.5) (2022-10-12)
|
2
9
|
|
3
10
|
|
@@ -17,7 +17,7 @@ module TailwindDsl
|
|
17
17
|
attr_accessor :captured_tailwind_config
|
18
18
|
|
19
19
|
# rubocop:disable Metrics/AbcSize
|
20
|
-
def initialize(design_system_name, group, file)
|
20
|
+
def initialize(design_system_name, group, file, root_raw_component_path)
|
21
21
|
@design_system_name = design_system_name
|
22
22
|
|
23
23
|
@captured_comment_text = ''
|
@@ -25,7 +25,7 @@ module TailwindDsl
|
|
25
25
|
@captured_tailwind_config = ''
|
26
26
|
|
27
27
|
@group = Group.new(key: group.key, type: group.type, sub_keys: group.sub_keys)
|
28
|
-
@source = Source.new(file: file.
|
28
|
+
@source = Source.new(file: File.join(root_raw_component_path, design_system_name, file.file))
|
29
29
|
@target = Target.new(
|
30
30
|
folder: group.folder,
|
31
31
|
html_file: file.target.html_file,
|
@@ -20,11 +20,13 @@ module TailwindDsl
|
|
20
20
|
|
21
21
|
# .gsub(/(\n\s*\n)+/, "\n")
|
22
22
|
attr_reader :uikit
|
23
|
+
attr_reader :root_raw_component_path
|
23
24
|
attr_reader :root_target_path
|
24
25
|
attr_reader :reset_root_path
|
25
26
|
|
26
|
-
def initialize(uikit, root_target_path, reset_root_path: false)
|
27
|
+
def initialize(uikit, root_raw_component_path, root_target_path, reset_root_path: false)
|
27
28
|
@uikit = uikit
|
29
|
+
@root_raw_component_path = root_raw_component_path
|
28
30
|
@root_target_path = root_target_path
|
29
31
|
@reset_root_path = reset_root_path
|
30
32
|
end
|
@@ -59,7 +61,7 @@ module TailwindDsl
|
|
59
61
|
def process_group(design_system_name, group)
|
60
62
|
group.files.each do |file|
|
61
63
|
# puts "DSN: #{design_system_name}, GRP: #{group.type}, FILE: #{file.file}"
|
62
|
-
data = Data.new(design_system_name, group, file)
|
64
|
+
data = Data.new(design_system_name, group, file, root_raw_component_path)
|
63
65
|
|
64
66
|
unless data.source.exist?
|
65
67
|
puts "Source file does not exist: #{data.source.file}"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TailwindDsl
|
4
|
+
module Etl
|
5
|
+
# Base class for all ETL data objects that load/persist JSON data
|
6
|
+
class Element
|
7
|
+
# Get the value of an argument from a hash
|
8
|
+
#
|
9
|
+
# @param args [Hash] The hash of arguments
|
10
|
+
# @param key [String, Symbol] The key to look up
|
11
|
+
# @param guard [String] The error message to raise if the key is not found. Guards are optional.
|
12
|
+
# @param default [Object] The default value to return if the key is not found. Also optional, defaults to nil.
|
13
|
+
def grab_arg(args, key, guard: nil, default: nil)
|
14
|
+
value = args[key.to_sym] || args[key.to_s]
|
15
|
+
|
16
|
+
raise guard if value.nil? && guard
|
17
|
+
|
18
|
+
value || default
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -6,19 +6,15 @@ module TailwindDsl
|
|
6
6
|
# Design System
|
7
7
|
#
|
8
8
|
# DesignSystem represents a collection of Tailwind CSS components that follow a specific design system
|
9
|
-
class DesignSystem
|
9
|
+
class DesignSystem < TailwindDsl::Etl::Element
|
10
10
|
attr_accessor :name
|
11
|
-
attr_accessor :path
|
12
11
|
attr_accessor :stats
|
13
12
|
attr_accessor :groups
|
14
13
|
|
15
|
-
def initialize(
|
16
|
-
@name = name
|
17
|
-
@
|
18
|
-
@
|
19
|
-
|
20
|
-
@groups = []
|
21
|
-
groups.each { |group| add_group(group) }
|
14
|
+
def initialize(**args)
|
15
|
+
@name = grab_arg(args, :name, guard: 'Missing name')
|
16
|
+
@stats = grab_arg(args, :stats, default: {})
|
17
|
+
@groups = grab_arg(args, :groups, default: []).map { |group| convert_group(group) }.compact
|
22
18
|
end
|
23
19
|
|
24
20
|
def add_group(group)
|
@@ -34,7 +30,6 @@ module TailwindDsl
|
|
34
30
|
def to_h
|
35
31
|
{
|
36
32
|
name: name,
|
37
|
-
path: path,
|
38
33
|
stats: stats,
|
39
34
|
groups: groups.map(&:to_h)
|
40
35
|
}
|
@@ -46,7 +41,7 @@ module TailwindDsl
|
|
46
41
|
return nil if group.nil?
|
47
42
|
|
48
43
|
return group if group.is_a?(Group)
|
49
|
-
return Group.new(group) if group.is_a?(Hash)
|
44
|
+
return Group.new(**group) if group.is_a?(Hash)
|
50
45
|
|
51
46
|
puts "Unknown group type: #{group.class}"
|
52
47
|
nil
|
@@ -6,21 +6,20 @@ module TailwindDsl
|
|
6
6
|
# Group
|
7
7
|
#
|
8
8
|
# Group represents a collection of Tailwind CSS components withing a named group or category
|
9
|
-
class Group
|
9
|
+
class Group < TailwindDsl::Etl::Element
|
10
10
|
attr_accessor :key
|
11
11
|
attr_accessor :type
|
12
12
|
attr_accessor :folder
|
13
13
|
attr_accessor :sub_keys
|
14
14
|
attr_accessor :files
|
15
15
|
|
16
|
-
def initialize(
|
17
|
-
@key
|
18
|
-
@type = type
|
19
|
-
@folder = folder
|
20
|
-
@sub_keys = sub_keys
|
16
|
+
def initialize(**args)
|
17
|
+
@key = grab_arg(args, :key, guard: 'Missing key')
|
18
|
+
@type = grab_arg(args, :type, guard: 'Missing type')
|
19
|
+
@folder = grab_arg(args, :folder, guard: 'Missing folder')
|
20
|
+
@sub_keys = grab_arg(args, :sub_keys, guard: 'Missing sub_keys')
|
21
21
|
|
22
|
-
@files = []
|
23
|
-
files.each { |file| add_file(file) }
|
22
|
+
@files = grab_arg(args, :files, default: []).map { |file| convert_file(file) }.compact
|
24
23
|
end
|
25
24
|
|
26
25
|
def add_file(file)
|
@@ -49,7 +48,7 @@ module TailwindDsl
|
|
49
48
|
return nil if file.nil?
|
50
49
|
|
51
50
|
return file if file.is_a?(SourceFile)
|
52
|
-
return SourceFile.new(file) if file.is_a?(Hash)
|
51
|
+
return SourceFile.new(**file) if file.is_a?(Hash)
|
53
52
|
|
54
53
|
puts "Unknown file type: #{file.class}"
|
55
54
|
nil
|
@@ -6,31 +6,26 @@ module TailwindDsl
|
|
6
6
|
# Source File
|
7
7
|
#
|
8
8
|
# SourceFile represents a list of source files that contain raw Tailwind CSS components
|
9
|
-
class SourceFile
|
9
|
+
class SourceFile < TailwindDsl::Etl::Element
|
10
10
|
attr_accessor :name
|
11
11
|
attr_accessor :file_name
|
12
12
|
attr_accessor :file_name_only
|
13
|
-
attr_accessor :absolute_file
|
14
13
|
attr_accessor :file
|
15
14
|
attr_accessor :target
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
@
|
20
|
-
@
|
21
|
-
@
|
22
|
-
@
|
23
|
-
@file = file
|
24
|
-
@target = convert_target(target)
|
16
|
+
def initialize(**args)
|
17
|
+
@name = grab_arg(args, :name, guard: 'Missing name')
|
18
|
+
@file_name = grab_arg(args, :file_name, guard: 'Missing file_name')
|
19
|
+
@file_name_only = grab_arg(args, :file_name_only, guard: 'Missing file_name_only')
|
20
|
+
@file = grab_arg(args, :file, guard: 'Missing file')
|
21
|
+
@target = convert_target(grab_arg(args, :target))
|
25
22
|
end
|
26
|
-
# rubocop:enable Metrics/ParameterLists
|
27
23
|
|
28
24
|
def to_h
|
29
25
|
result = {
|
30
26
|
name: name,
|
31
27
|
file_name: file_name,
|
32
28
|
file_name_only: file_name_only,
|
33
|
-
absolute_file: absolute_file,
|
34
29
|
file: file
|
35
30
|
}
|
36
31
|
result[:target] = target.to_h if target
|
@@ -46,7 +41,7 @@ module TailwindDsl
|
|
46
41
|
when TargetFile
|
47
42
|
target
|
48
43
|
when Hash
|
49
|
-
TargetFile.new(target)
|
44
|
+
TargetFile.new(**target)
|
50
45
|
else
|
51
46
|
raise "Unknown target type: #{target.class}"
|
52
47
|
end
|
@@ -6,7 +6,7 @@ module TailwindDsl
|
|
6
6
|
# Target File
|
7
7
|
#
|
8
8
|
# TargetFile represents each sub_file that can be built from a source file, such as HTML Component, Tailwind Config, Settings and Data Structure
|
9
|
-
class TargetFile
|
9
|
+
class TargetFile < TailwindDsl::Etl::Element
|
10
10
|
attr_accessor :html_file
|
11
11
|
attr_accessor :clean_html_file
|
12
12
|
attr_accessor :tailwind_config_file
|
@@ -14,16 +14,14 @@ module TailwindDsl
|
|
14
14
|
attr_accessor :data_file
|
15
15
|
attr_accessor :astro_file
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
@
|
20
|
-
@
|
21
|
-
@
|
22
|
-
@
|
23
|
-
@
|
24
|
-
@astro_file = astro_file
|
17
|
+
def initialize(**args)
|
18
|
+
@html_file = grab_arg(args, :html_file, guard: 'Missing html_file')
|
19
|
+
@clean_html_file = grab_arg(args, :clean_html_file, guard: 'Missing clean_html_file')
|
20
|
+
@tailwind_config_file = grab_arg(args, :tailwind_config_file, guard: 'Missing tailwind_config_file')
|
21
|
+
@settings_file = grab_arg(args, :settings_file, guard: 'Missing settings_file')
|
22
|
+
@data_file = grab_arg(args, :data_file, guard: 'Missing data_file')
|
23
|
+
@astro_file = grab_arg(args, :astro_file, guard: 'Missing astro_file')
|
25
24
|
end
|
26
|
-
# rubocop:enable Metrics/ParameterLists
|
27
25
|
|
28
26
|
def to_h
|
29
27
|
{
|
@@ -54,7 +54,7 @@ module TailwindDsl
|
|
54
54
|
return nil if design_system.nil?
|
55
55
|
|
56
56
|
return design_system if design_system.is_a?(DesignSystem)
|
57
|
-
return DesignSystem.new(design_system) if design_system.is_a?(Hash)
|
57
|
+
return DesignSystem.new(**design_system) if design_system.is_a?(Hash)
|
58
58
|
|
59
59
|
puts "Unknown design_system type: #{design_system.class}"
|
60
60
|
nil
|
@@ -5,6 +5,7 @@ module TailwindDsl
|
|
5
5
|
module RawComponents
|
6
6
|
# The component reader will read the raw component files for each UI Kit.
|
7
7
|
class Transformer
|
8
|
+
attr_reader :path
|
8
9
|
attr_reader :design_system
|
9
10
|
|
10
11
|
attr_reader :group_lookup
|
@@ -12,10 +13,10 @@ module TailwindDsl
|
|
12
13
|
|
13
14
|
def call(name, path)
|
14
15
|
@design_system = ::TailwindDsl::Etl::RawComponents::DesignSystem.new(
|
15
|
-
name: name
|
16
|
-
path: path
|
16
|
+
name: name
|
17
17
|
)
|
18
18
|
|
19
|
+
@path = path
|
19
20
|
@group_lookup = {}
|
20
21
|
|
21
22
|
process_files
|
@@ -30,7 +31,7 @@ module TailwindDsl
|
|
30
31
|
private
|
31
32
|
|
32
33
|
def process_files
|
33
|
-
glob = File.join(
|
34
|
+
glob = File.join(path, '**', '*')
|
34
35
|
|
35
36
|
Dir.glob(glob) do |entry|
|
36
37
|
next if reject?(entry)
|
@@ -44,7 +45,7 @@ module TailwindDsl
|
|
44
45
|
# rubocop:disable Metrics/AbcSize
|
45
46
|
def assign_group(entry)
|
46
47
|
target_path = File.directory?(entry) ? entry : File.dirname(entry)
|
47
|
-
relative_folder = Pathname.new(target_path).relative_path_from(Pathname.new(
|
48
|
+
relative_folder = Pathname.new(target_path).relative_path_from(Pathname.new(path)).to_s
|
48
49
|
|
49
50
|
group_key = relative_folder == '.' ? '@' : relative_folder.split('/').map { |part| snake.call(part) }.join('.')
|
50
51
|
|
@@ -90,11 +91,11 @@ module TailwindDsl
|
|
90
91
|
end
|
91
92
|
|
92
93
|
def source_file(entry, folder, target)
|
94
|
+
# absolute_file: entry,
|
93
95
|
::TailwindDsl::Etl::RawComponents::SourceFile.new(
|
94
96
|
name: File.basename(entry),
|
95
97
|
file_name: File.basename(entry),
|
96
98
|
file_name_only: File.basename(entry, File.extname(entry)),
|
97
|
-
absolute_file: entry,
|
98
99
|
file: File.join(folder, File.basename(entry)),
|
99
100
|
target: target
|
100
101
|
)
|
data/lib/tailwind_dsl/version.rb
CHANGED
data/lib/tailwind_dsl.rb
CHANGED
@@ -7,6 +7,8 @@ require_relative 'tailwind_dsl/version'
|
|
7
7
|
|
8
8
|
require_relative 'tailwind_dsl/etl/raw_components/director'
|
9
9
|
require_relative 'tailwind_dsl/etl/raw_components/transformer'
|
10
|
+
|
11
|
+
require_relative 'tailwind_dsl/etl/element'
|
10
12
|
require_relative 'tailwind_dsl/etl/raw_components/schema/target_file'
|
11
13
|
require_relative 'tailwind_dsl/etl/raw_components/schema/source_file'
|
12
14
|
require_relative 'tailwind_dsl/etl/raw_components/schema/group'
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "tailwind_dsl",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.7",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "tailwind_dsl",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.7",
|
10
10
|
"devDependencies": {
|
11
11
|
"@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
|
12
12
|
"@semantic-release/changelog": "^6.0.1",
|
data/package.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tailwind_dsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cmdlet
|
@@ -2201,6 +2201,7 @@ files:
|
|
2201
2201
|
- lib/tailwind_dsl/astro_demo/generate_astro_page_data.rb
|
2202
2202
|
- lib/tailwind_dsl/etl/component_structures/data.rb
|
2203
2203
|
- lib/tailwind_dsl/etl/component_structures/generator.rb
|
2204
|
+
- lib/tailwind_dsl/etl/element.rb
|
2204
2205
|
- lib/tailwind_dsl/etl/raw_components/director.rb
|
2205
2206
|
- lib/tailwind_dsl/etl/raw_components/schema/design_system.rb
|
2206
2207
|
- lib/tailwind_dsl/etl/raw_components/schema/group.rb
|