k_director 0.10.2 → 0.11.1

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: '080f78bce274be30bf0b77765c7fe6b40c56a9a5f40b385dd55ed96cd81b440b'
4
- data.tar.gz: 7f12eeaf1ccdac94be739700260e30282766f85f9d4fad8f6e9cb81bd47359f0
3
+ metadata.gz: d6ee6da028f776a4ed4ed470290696dfcf2c15c0caa417666e9300f1d75ea390
4
+ data.tar.gz: 14dd16cd8185b21eef317ea6b8cfda1ee570c8559e77db264021722889962a74
5
5
  SHA512:
6
- metadata.gz: 20fb925316d432b16e5ac5b5074f5e2d86845225262dae2460962b51199555d757e889a8a3fdd62b86dab2f60b7f35c5892a875b530369b9d83268e52d657be2
7
- data.tar.gz: 2e5d5485a94a94cbfa2a86110e7bea1a5af50b32febc51830d935b5e4592ddc1bcd9d4424044acbb3d0ec0b606197e1c674bac57e43ccd5386a70bd1a0663272
6
+ metadata.gz: 34896604b4d9731e4a4ab0924572fdb65736bab9e71b63491ba16fd9d3f79418e3e63d4d81818048870333c002f76316846617df1ccbe5aaffb1c171e73efdc8
7
+ data.tar.gz: dcf6fd9985456ad96ac7383b29a08fcf020b8947502eac2af80c2618481f12bc193d180a1518d40cb4d074d8a8412dcaeecb5c017e1cddeda406ee365deab520
data/docs/CHANGELOG.md CHANGED
@@ -1,3 +1,32 @@
1
+ # [0.11.0](https://github.com/klueless-io/k_director/compare/v0.10.4...v0.11.0) (2022-02-07)
2
+
3
+
4
+ ### Features
5
+
6
+ * move github, blueprint and package_json fluent accessors onto BaseDirector ([88fa3fd](https://github.com/klueless-io/k_director/commit/88fa3fd0df530bef3731f0b4a62369d925df2fa5))
7
+
8
+ ## [0.10.4](https://github.com/klueless-io/k_director/compare/v0.10.3...v0.10.4) (2022-02-07)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * add active option so that child directors can be suppressed or executed ([8a57617](https://github.com/klueless-io/k_director/commit/8a57617eea20dd9a020aec329bd994b3c444f087))
14
+
15
+ ## [0.10.3](https://github.com/klueless-io/k_director/compare/v0.10.2...v0.10.3) (2022-02-06)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * package_json and multi-settings #settings(**opts, group: nil) ([7f23a08](https://github.com/klueless-io/k_director/commit/7f23a08751c3bca7ea99685f33a95eeed8786e1a))
21
+
22
+ ## [0.10.2](https://github.com/klueless-io/k_director/compare/v0.10.1...v0.10.2) (2022-02-06)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * package_json, remove_package_lcok, remove_yarn_locak, create_yarn_lock ([d69c6a5](https://github.com/klueless-io/k_director/commit/d69c6a53a80551cdf5ac73024de8d2e597c37614))
28
+ * package_json, remove_package_lcok, remove_yarn_locak, create_yarn_lock ([fdeef48](https://github.com/klueless-io/k_director/commit/fdeef481763160ca0c8d306491d7eb2e29536641))
29
+
1
30
  ## [0.10.1](https://github.com/klueless-io/k_director/compare/v0.10.0...v0.10.1) (2022-02-06)
2
31
 
3
32
 
@@ -32,6 +32,7 @@ module KDirector
32
32
  @options.template_base_folder ||= default_template_base_folder
33
33
  @options.on_exist ||= :skip # %i[skip write compare]
34
34
  @options.on_action ||= :queue # %i[queue execute]
35
+ @options.active = true unless defined?(@options.active)
35
36
  end
36
37
 
37
38
  def data(name = nil, **opts)
@@ -55,7 +56,8 @@ module KDirector
55
56
  {
56
57
  on_exist: @options.on_exist,
57
58
  on_action: @options.on_action,
58
- template_base_folder: @options.template_base_folder
59
+ template_base_folder: @options.template_base_folder,
60
+ active: @options.active
59
61
  }.merge(opts)
60
62
  end
61
63
 
@@ -63,6 +65,10 @@ module KDirector
63
65
  k_builder.configuration
64
66
  end
65
67
 
68
+ def active?
69
+ @options.active == true
70
+ end
71
+
66
72
  def director_name
67
73
  @options.director_name
68
74
  end
@@ -83,6 +89,37 @@ module KDirector
83
89
  @options.on_action
84
90
  end
85
91
 
92
+ # Add a single file into the code base
93
+ #
94
+ # This is a wrapper around add_file that will add the file to the codebase using template path rules
95
+ #
96
+ # @param [String] output_filename The output file name, this can be a relative path
97
+ # @param [Hash] **opts The options
98
+ # @option opts [String] :template_filename Template filename can be set or it will default to the same value as the output file name
99
+ # @option opts [String] :template_subfolder Template subfolder
100
+ def add(output_file, **opts)
101
+ template_file = opts[:template_file] || output_file
102
+ template_parts = [template_base_folder, opts[:template_subfolder], template_file].reject(&:blank?)
103
+ template_path = File.join(*template_parts)
104
+
105
+ # maybe template_file should be renamed to template_path in k_builder
106
+ opts[:template_file] = template_path
107
+
108
+ add_file(output_file, **opts)
109
+ end
110
+
111
+ def oadd(name, **opts)
112
+ add(name, **{ open: true }.merge(opts))
113
+ end
114
+
115
+ def tadd(name, **opts)
116
+ add(name, **{ open_template: true }.merge(opts))
117
+ end
118
+
119
+ def fadd(name, **opts)
120
+ add(name, **{ on_exist: :write }.merge(opts))
121
+ end
122
+
86
123
  # Add a file to target folder
87
124
  def add_file(file, **opts)
88
125
  opts = {
@@ -127,6 +164,29 @@ module KDirector
127
164
  k_builder.play_actions(builder.actions)
128
165
  end
129
166
 
167
+ # Common child directors
168
+
169
+ def github(**opts, &block)
170
+ github = KDirector::Dsls::Children::Github.new(self, **opts)
171
+ github.instance_eval(&block) if github.active? && block_given?
172
+
173
+ self
174
+ end
175
+
176
+ def package_json(**opts, &block)
177
+ package_json = KDirector::Dsls::Children::PackageJson.new(self, **opts)
178
+ package_json.instance_eval(&block) if package_json.active? && block_given?
179
+
180
+ self
181
+ end
182
+
183
+ def blueprint(**opts, &block)
184
+ blueprint = KDirector::Dsls::Children::Blueprint.new(self, **opts)
185
+ blueprint.instance_eval(&block) if blueprint.active? && block_given?
186
+
187
+ self
188
+ end
189
+
130
190
  def debug
131
191
  debug_options
132
192
  debug_dom
@@ -7,35 +7,6 @@ module KDirector
7
7
  #
8
8
  # A blueprint is a recipe that you can follow to build out assets on the target application
9
9
  class Blueprint < KDirector::Directors::ChildDirector
10
- # Add a single file into the code base
11
- #
12
- # @param [String] output_filename The output file name, this can be a relative path
13
- # @param [Hash] **opts The options
14
- # @option opts [String] :template_filename Template filename can be set or it will default to the same value as the output file name
15
- # @option opts [String] :template_subfolder Template subfolder
16
- def add(output_file, **opts)
17
- template_file = opts[:template_file] || output_file
18
- template_parts = [template_base_folder, opts[:template_subfolder], template_file].reject(&:blank?)
19
- template_path = File.join(*template_parts)
20
-
21
- # maybe template_file should be renamed to template_path in k_builder
22
- opts[:template_file] = template_path
23
-
24
- add_file(output_file, **opts)
25
- end
26
-
27
- def oadd(name, **opts)
28
- add(name, **{ open: true }.merge(opts))
29
- end
30
-
31
- def tadd(name, **opts)
32
- add(name, **{ open_template: true }.merge(opts))
33
- end
34
-
35
- def fadd(name, **opts)
36
- add(name, **{ on_exist: :write }.merge(opts))
37
- end
38
-
39
10
  # def template_content(template_file, **opts)
40
11
  # template_parts = [template_base_folder, opts[:template_subfolder], template_file].reject(&:blank?)
41
12
  # template_file = File.join(*template_parts)
@@ -159,6 +159,28 @@ module KDirector
159
159
  @package
160
160
  end
161
161
 
162
+ # Package.settings is a hash of settings that can be applied to package.json
163
+ # ----------------------------------------------------------------------
164
+
165
+ # Settings
166
+ #
167
+ # Add multiple settings to the package.json
168
+ # @param opts [Hash] Hash of settings to add
169
+ # opts[:group] is the group to add the settings to
170
+ def settings(**opts)
171
+ load
172
+
173
+ group = opts.delete(:group)
174
+
175
+ opts.each do |key, value|
176
+ set_key_value(key, value, group: group)
177
+ end
178
+
179
+ write
180
+
181
+ self
182
+ end
183
+
162
184
  # Package.set
163
185
  # ----------------------------------------------------------------------
164
186
 
@@ -166,15 +188,7 @@ module KDirector
166
188
  def set(key, value, group: nil)
167
189
  load
168
190
 
169
- key = key.to_s.strip
170
-
171
- if group.nil?
172
- @package[key] = value
173
- else
174
- group = group.to_s.strip
175
- @package[group] = {} unless @package[group]
176
- @package[group][key] = value
177
- end
191
+ set_key_value(key, value, group: group)
178
192
 
179
193
  write
180
194
 
@@ -245,8 +259,8 @@ module KDirector
245
259
  # rubocop:enable Naming/AccessorMethodName
246
260
 
247
261
  # Setter for package file
248
- def package_file=(_value)
249
- @package_file = File.join(k_builder.target_folder, 'package.json')
262
+ def package_file=(value)
263
+ @package_file = File.join(k_builder.target_folder, value)
250
264
  end
251
265
 
252
266
  # Remove package-lock.json
@@ -331,6 +345,18 @@ module KDirector
331
345
  group
332
346
  end
333
347
 
348
+ def set_key_value(key, value, group: nil)
349
+ key = key.to_s.strip
350
+
351
+ if group.nil?
352
+ @package[key] = value
353
+ else
354
+ group = group.to_s.strip
355
+ @package[group] = {} unless @package[group]
356
+ @package[group][key] = value
357
+ end
358
+ end
359
+
334
360
  def run_command(command)
335
361
  parent.k_builder.run_command(command)
336
362
  end
@@ -36,12 +36,18 @@ module KDirector
36
36
  end
37
37
 
38
38
  # Setup the default package groups
39
+ # rubocop:disable Metrics/MethodLength
39
40
  def set_default_package_groups
40
41
  set_package_group('webpack' , 'Webpack V5' , %w[webpack webpack-cli webpack-dev-server])
41
42
  set_package_group('swc' , 'SWC Transpiler' , %w[@swc/cli @swc/core swc-loader])
42
43
  set_package_group('babel' , 'Babel Transpiler' , %w[@babel/core @babel/cli @babel/preset-env babel-loader])
43
44
  set_package_group('typescript' , 'Typescript' , %w[typescript ts-loader])
44
- set_package_group('semver-ruby' , 'Semantic Release for Ruby' , %w[semantic-release github:klueless-js/semantic-release-rubygem @semantic-release/changelog @semantic-release/git])
45
+ set_package_group('semver-ruby' , 'Semantic Release for Ruby' , %w[
46
+ semantic-release
47
+ @semantic-release/changelog
48
+ @semantic-release/git
49
+ @klueless-js/semantic-release-rubygem@github:klueless-js/semantic-release-rubygem
50
+ ])
45
51
 
46
52
  set_package_group('semver-nuxt' , 'Semantic Release for Nuxt' , %w[
47
53
  semantic-release
@@ -55,7 +61,6 @@ module KDirector
55
61
  autoprefixer@latest
56
62
  ])
57
63
 
58
- # this does not work yet
59
64
  set_package_group('storybook-nuxt' , 'Storybook for (Vite/Nuxt)' , %w[
60
65
  @storybook/vue3@6.4.18
61
66
  @storybook/addon-postcss@2.0.0
@@ -63,10 +68,11 @@ module KDirector
63
68
  storybook-builder-vite
64
69
  ])
65
70
 
66
- # Currently these two need to be foreced
71
+ # Currently these two need to be forced
67
72
  # @storybook/addon-docs@6.4.18
68
73
  # @storybook/addon-essentials@6.4.18
69
74
  end
75
+ # rubocop:enable Metrics/MethodLength
70
76
 
71
77
  def debug
72
78
  log.structure(package_groups, convert_data_to: :open_struct)
@@ -8,27 +8,6 @@ module KDirector
8
8
  'nuxt3'
9
9
  end
10
10
 
11
- def github(**opts, &block)
12
- github = KDirector::Dsls::Children::Github.new(self, **opts)
13
- github.instance_eval(&block) if block_given?
14
-
15
- self
16
- end
17
-
18
- def package_json(**opts, &block)
19
- package_json = KDirector::Dsls::Children::PackageJson.new(self, **opts)
20
- package_json.instance_eval(&block) if block_given?
21
-
22
- self
23
- end
24
-
25
- def blueprint(**opts, &block)
26
- blueprint = KDirector::Dsls::Children::Blueprint.new(self, **opts)
27
- blueprint.instance_eval(&block) if block_given?
28
-
29
- self
30
- end
31
-
32
11
  # def app(**opts, &block)
33
12
  # app = Dsl::Nuxt3App.new(self, **opts)
34
13
  # app.instance_eval(&block)
@@ -8,26 +8,26 @@ module KDirector
8
8
  'ruby/gem'
9
9
  end
10
10
 
11
- def github(**opts, &block)
12
- github = KDirector::Dsls::Children::Github.new(self, **opts)
13
- github.instance_eval(&block) if block_given?
11
+ # def github(**opts, &block)
12
+ # github = KDirector::Dsls::Children::Github.new(self, **opts)
13
+ # github.instance_eval(&block) if github.active? && block_given?
14
14
 
15
- self
16
- end
15
+ # self
16
+ # end
17
17
 
18
- def package_json(**opts, &block)
19
- package_json = KDirector::Dsls::Children::PackageJson.new(self, **opts)
20
- package_json.instance_eval(&block) if block_given?
18
+ # def package_json(**opts, &block)
19
+ # package_json = KDirector::Dsls::Children::PackageJson.new(self, **opts)
20
+ # package_json.instance_eval(&block) if package_json.active? && block_given?
21
21
 
22
- self
23
- end
22
+ # self
23
+ # end
24
24
 
25
- def blueprint(**opts, &block)
26
- blueprint = KDirector::Dsls::Children::Blueprint.new(self, **opts)
27
- blueprint.instance_eval(&block) if block_given?
25
+ # def blueprint(**opts, &block)
26
+ # blueprint = KDirector::Dsls::Children::Blueprint.new(self, **opts)
27
+ # blueprint.instance_eval(&block) if blueprint.active? && block_given?
28
28
 
29
- self
30
- end
29
+ # self
30
+ # end
31
31
  end
32
32
  end
33
33
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KDirector
4
- VERSION = '0.10.2'
4
+ VERSION = '0.11.1'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "k_director",
3
- "version": "0.10.2",
3
+ "version": "0.11.1",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "k_director",
9
- "version": "0.10.2",
9
+ "version": "0.11.1",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k_director",
3
- "version": "0.10.2",
3
+ "version": "0.11.1",
4
4
  "description": "Command line and CI/CD tools for k_director",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k_director
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 0.11.1
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-02-06 00:00:00.000000000 Z
11
+ date: 2022-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: k_config