k_director 0.10.1 → 0.11.0

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: 431e5c6f071221fcdea319010b83bb17bba62187f835ae595a5453eaffd30956
4
- data.tar.gz: ebcfe2cda7f2538f0511cd5e6df7bbf9d53bb29834b43286f34054d51521eecd
3
+ metadata.gz: 0e855ea56fe8350c6d8f348caafec612a3faa998f6f39f0bfd631c0968b5476f
4
+ data.tar.gz: 3a8ef5a51b2f968d17e688953cf6868a5a387bbe7579a19896fd0c21d4c01b36
5
5
  SHA512:
6
- metadata.gz: 725a68f629da441807038726a8899bf19004c0dec43b7e41ac11fccb9124bd2bbcb3dd6babd10938287c9b00394aba3e7588af91cbf5be99f5d8523c29459381
7
- data.tar.gz: aeca07e40f162c470767a7590865cf7cb41f48c5ffa605dc37cb1f71b538acff734963321b0bd9a7e05d03d716a476cd485baaff595070f5f72b718963384621
6
+ metadata.gz: bf168f42f0a1e1df0bc0e169b824601579c793623458b5d13fbd8b3cf933d2fbe8abacf4e52f76c3c4795585cb32b276a5bae3505fa74d2cc63cb3d839a27341
7
+ data.tar.gz: c3d3d4fd6fc847d62d23e32c15db3874badce4c8743d28c40111d725eb7a3e5f4d39fdb3442b42c213ae524c262d128ea9de4062e985a044ce4e8c85bba2bae5
data/docs/CHANGELOG.md CHANGED
@@ -1,3 +1,32 @@
1
+ ## [0.10.4](https://github.com/klueless-io/k_director/compare/v0.10.3...v0.10.4) (2022-02-07)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add active option so that child directors can be suppressed or executed ([8a57617](https://github.com/klueless-io/k_director/commit/8a57617eea20dd9a020aec329bd994b3c444f087))
7
+
8
+ ## [0.10.3](https://github.com/klueless-io/k_director/compare/v0.10.2...v0.10.3) (2022-02-06)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * package_json and multi-settings #settings(**opts, group: nil) ([7f23a08](https://github.com/klueless-io/k_director/commit/7f23a08751c3bca7ea99685f33a95eeed8786e1a))
14
+
15
+ ## [0.10.2](https://github.com/klueless-io/k_director/compare/v0.10.1...v0.10.2) (2022-02-06)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * package_json, remove_package_lcok, remove_yarn_locak, create_yarn_lock ([d69c6a5](https://github.com/klueless-io/k_director/commit/d69c6a53a80551cdf5ac73024de8d2e597c37614))
21
+ * package_json, remove_package_lcok, remove_yarn_locak, create_yarn_lock ([fdeef48](https://github.com/klueless-io/k_director/commit/fdeef481763160ca0c8d306491d7eb2e29536641))
22
+
23
+ ## [0.10.1](https://github.com/klueless-io/k_director/compare/v0.10.0...v0.10.1) (2022-02-06)
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * package_json, add set by group, remove and re ove by group ([93317f8](https://github.com/klueless-io/k_director/commit/93317f8b590ac2551e72072e93ca9b7f0d54f568))
29
+
1
30
  # [0.10.0](https://github.com/klueless-io/k_director/compare/v0.9.0...v0.10.0) (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
@@ -127,6 +133,29 @@ module KDirector
127
133
  k_builder.play_actions(builder.actions)
128
134
  end
129
135
 
136
+ # Common child directors
137
+
138
+ def github(**opts, &block)
139
+ github = KDirector::Dsls::Children::Github.new(self, **opts)
140
+ github.instance_eval(&block) if github.active? && block_given?
141
+
142
+ self
143
+ end
144
+
145
+ def package_json(**opts, &block)
146
+ package_json = KDirector::Dsls::Children::PackageJson.new(self, **opts)
147
+ package_json.instance_eval(&block) if package_json.active? && block_given?
148
+
149
+ self
150
+ end
151
+
152
+ def blueprint(**opts, &block)
153
+ blueprint = KDirector::Dsls::Children::Blueprint.new(self, **opts)
154
+ blueprint.instance_eval(&block) if blueprint.active? && block_given?
155
+
156
+ self
157
+ end
158
+
130
159
  def debug
131
160
  debug_options
132
161
  debug_dom
@@ -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,14 +259,40 @@ 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
- # # Getter for target folder
253
- # def package_file
254
- # hash['package_file']
255
- # end
266
+ # Remove package-lock.json
267
+ # ----------------------------------------------------------------------
268
+
269
+ def remove_package_lock
270
+ file = File.join(k_builder.target_folder, 'package-lock.json')
271
+
272
+ File.delete(file) if File.exist?(file)
273
+
274
+ self
275
+ end
276
+
277
+ # Remove yarn.lock
278
+ # ----------------------------------------------------------------------
279
+
280
+ def remove_yarn_lock
281
+ file = File.join(k_builder.target_folder, 'yarn.lock')
282
+
283
+ File.delete(file) if File.exist?(file)
284
+
285
+ self
286
+ end
287
+
288
+ # Create yarn.lock
289
+ # ----------------------------------------------------------------------
290
+
291
+ def create_yarn_lock
292
+ run_command 'yarn install --check-files'
293
+
294
+ self
295
+ end
256
296
 
257
297
  # -----------------------------------
258
298
  # Helpers
@@ -305,6 +345,18 @@ module KDirector
305
345
  group
306
346
  end
307
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
+
308
360
  def run_command(command)
309
361
  parent.k_builder.run_command(command)
310
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,17 +61,18 @@ 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
- @storybook/addon-docs@6.4.18
62
- @storybook/addon-essentials@6.4.18
63
66
  @storybook/addon-postcss@2.0.0
64
67
  @storybook/addon-storysource@6.4.18
65
68
  storybook-builder-vite
66
69
  ])
67
- # @storybook/addon-docs
70
+
71
+ # Currently these two need to be forced
72
+ # @storybook/addon-docs@6.4.18
73
+ # @storybook/addon-essentials@6.4.18
68
74
  end
75
+ # rubocop:enable Metrics/MethodLength
69
76
 
70
77
  def debug
71
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.1'
4
+ VERSION = '0.11.0'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "k_director",
3
- "version": "0.10.1",
3
+ "version": "0.11.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "k_director",
9
- "version": "0.10.1",
9
+ "version": "0.11.0",
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.1",
3
+ "version": "0.11.0",
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.1
4
+ version: 0.11.0
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