k_director 0.10.1 → 0.11.0

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