k_director 0.7.1 → 0.8.1
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 +4 -4
- data/.github/workflows/main.yml +1 -2
- data/docs/CHANGELOG.md +28 -0
- data/k_director.gemspec +1 -0
- data/lib/k_director/builders/actions_builder.rb +1 -1
- data/lib/k_director/directors/base_director.rb +14 -0
- data/lib/k_director/directors/child_director.rb +6 -0
- data/lib/k_director/dsls/children/github.rb +16 -13
- data/lib/k_director/dsls/children/package_json.rb +50 -0
- data/lib/k_director/dsls/children/package_json_configuration.rb +55 -0
- data/lib/k_director/dsls/nuxt3_dsl.rb +2 -9
- data/lib/k_director/dsls/ruby_gem_dsl.rb +26 -0
- data/lib/k_director/version.rb +1 -1
- data/lib/k_director.rb +4 -0
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5784bc2f8f9ea89bac4e9d195ed607c1785d1f92281ff7ed553f9edf47d5c29f
|
4
|
+
data.tar.gz: cf9f19744ba09d4ef876a4114e4a4d52161d7355255c8393c726f78295ad44a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5ae842246267f476569e932922db59431a4e5af70c164968a51e12447ab34ef0300aca3f9b2cf0fbb1574ca98c14a8ad857978e7ca672a9bfe38c3d1a55c91c
|
7
|
+
data.tar.gz: 9b10d1b7ab087e22656a486439cf2c71cf7d9b8d93c3de87e6d3df49b71ad1156a90eb605f8dbe93246a83e3faea722572f64cb4e7bb6ceb30867736529485ab
|
data/.github/workflows/main.yml
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
name: Build Application
|
2
2
|
|
3
|
+
# echo ${{secrets.SOME_SECRET }} | sed 's/./& /g' &&
|
3
4
|
on:
|
4
5
|
push:
|
5
6
|
branches: [ main ]
|
@@ -64,8 +65,6 @@ jobs:
|
|
64
65
|
with:
|
65
66
|
node-version: '16'
|
66
67
|
|
67
|
-
# - uses: hmarr/debug-action@v2 # TURN on ENV DEBUG
|
68
|
-
|
69
68
|
- name: Cache node modules
|
70
69
|
uses: actions/cache@v2
|
71
70
|
id: cache-node-modules
|
data/docs/CHANGELOG.md
CHANGED
@@ -1,3 +1,31 @@
|
|
1
|
+
# [0.8.0](https://github.com/klueless-io/k_director/compare/v0.7.3...v0.8.0) (2022-02-04)
|
2
|
+
|
3
|
+
|
4
|
+
### Features
|
5
|
+
|
6
|
+
* add rubygem DSL support ([f93a863](https://github.com/klueless-io/k_director/commit/f93a86338d703771ba43a8e9ed5e7c8e9d1a7778))
|
7
|
+
|
8
|
+
## [0.7.3](https://github.com/klueless-io/k_director/compare/v0.7.2...v0.7.3) (2022-02-03)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* alter internal github info ([ed77548](https://github.com/klueless-io/k_director/commit/ed77548eee2f1cdd0c9799f0842b0e44e79ed2f4))
|
14
|
+
|
15
|
+
## [0.7.2](https://github.com/klueless-io/k_director/compare/v0.7.1...v0.7.2) (2022-02-03)
|
16
|
+
|
17
|
+
|
18
|
+
### Bug Fixes
|
19
|
+
|
20
|
+
* improve debug support ([6edb583](https://github.com/klueless-io/k_director/commit/6edb583e3aa467fbd77f4b30f2250dca9a170c7a))
|
21
|
+
|
22
|
+
## [0.7.1](https://github.com/klueless-io/k_director/compare/v0.7.0...v0.7.1) (2022-02-03)
|
23
|
+
|
24
|
+
|
25
|
+
### Bug Fixes
|
26
|
+
|
27
|
+
* add support for github and blueprint to nuxt3 ([335befb](https://github.com/klueless-io/k_director/commit/335befbc427e156f9fe52407641fe720e22b2bb3))
|
28
|
+
|
1
29
|
# [0.7.0](https://github.com/klueless-io/k_director/compare/v0.6.2...v0.7.0) (2022-02-03)
|
2
30
|
|
3
31
|
|
data/k_director.gemspec
CHANGED
@@ -124,6 +124,11 @@ module KDirector
|
|
124
124
|
end
|
125
125
|
|
126
126
|
def debug
|
127
|
+
debug_options
|
128
|
+
debug_dom
|
129
|
+
end
|
130
|
+
|
131
|
+
def debug_options
|
127
132
|
log.section_heading director_name
|
128
133
|
|
129
134
|
h = options.to_h.sort.to_h
|
@@ -131,6 +136,15 @@ module KDirector
|
|
131
136
|
# requires k_funky
|
132
137
|
log.kv(titleize.parse(key.to_s), h[key])
|
133
138
|
end
|
139
|
+
|
140
|
+
nil
|
141
|
+
end
|
142
|
+
|
143
|
+
def debug_dom
|
144
|
+
log.section_heading 'DOM'
|
145
|
+
|
146
|
+
builder.debug
|
147
|
+
|
134
148
|
nil
|
135
149
|
end
|
136
150
|
|
@@ -14,23 +14,23 @@ module KDirector
|
|
14
14
|
|
15
15
|
defaults = {
|
16
16
|
repo_name: opts[:repo_name], # || parent.builder.dom&[:github]&[:repo_name]
|
17
|
-
|
17
|
+
username: opts[:username] || default_github_username, # || parent.builder.dom&[:github]&[:username]
|
18
18
|
organization: opts[:organization] # || parent.builder.dom&[:github]&[:organization]
|
19
19
|
}
|
20
20
|
|
21
|
-
parent.builder.group_set(:github, **defaults)
|
21
|
+
parent.builder.group_set(:github, **repo_info_hash(**defaults))
|
22
22
|
end
|
23
23
|
|
24
24
|
def repo_name
|
25
|
-
parent.builder.dom
|
25
|
+
parent.builder.dom.dig(:github, :repo_name)
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
parent.builder.dom
|
28
|
+
def username
|
29
|
+
parent.builder.dom.dig(:github, :username)
|
30
30
|
end
|
31
31
|
|
32
32
|
def organization
|
33
|
-
parent.builder.dom
|
33
|
+
parent.builder.dom.dig(:github, :organization)
|
34
34
|
end
|
35
35
|
|
36
36
|
def list_repositories
|
@@ -110,29 +110,32 @@ module KDirector
|
|
110
110
|
end
|
111
111
|
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
112
112
|
|
113
|
-
def
|
114
|
-
repo_name = opts[:
|
115
|
-
|
116
|
-
username = opts[:username] || user
|
113
|
+
def repo_info_hash(**opts)
|
114
|
+
repo_name = (opts[:repo_name] || self.repo_name).to_s
|
115
|
+
username = opts[:username] || self.username
|
117
116
|
organization = opts[:organization] || self.organization
|
118
117
|
account = organization || username
|
119
118
|
full_name = [account, repo_name].compact.join('/')
|
120
119
|
link = "https://github.com/#{full_name}"
|
121
120
|
ssh_link = "git@github.com:#{full_name}.git"
|
122
121
|
|
123
|
-
|
122
|
+
{
|
124
123
|
repo_name: repo_name,
|
125
124
|
full_name: full_name,
|
126
125
|
link: link,
|
127
126
|
ssh_link: ssh_link,
|
128
127
|
username: username,
|
129
128
|
organization: organization
|
130
|
-
|
129
|
+
}
|
130
|
+
end
|
131
|
+
|
132
|
+
def repo_info(**opts)
|
133
|
+
OpenStruct.new(**repo_info_hash(**opts))
|
131
134
|
end
|
132
135
|
|
133
136
|
private
|
134
137
|
|
135
|
-
def
|
138
|
+
def default_github_username
|
136
139
|
KExt::Github.configuration.user
|
137
140
|
end
|
138
141
|
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module KDirector
|
4
|
+
module Dsls
|
5
|
+
module Children
|
6
|
+
# PackageJson DSL provides package.json manipulation actions such as.
|
7
|
+
class PackageJson < KDirector::Directors::ChildDirector
|
8
|
+
# In memory representation of the package.json file that is being created
|
9
|
+
|
10
|
+
attr_writer :package
|
11
|
+
|
12
|
+
attr_reader :package_file
|
13
|
+
attr_accessor :dependency_type
|
14
|
+
|
15
|
+
def initialize(parent, **opts)
|
16
|
+
super(parent, **opts)
|
17
|
+
|
18
|
+
set_package_file('package.json')
|
19
|
+
set_dependency_type(:development)
|
20
|
+
|
21
|
+
# defaults = {
|
22
|
+
# repo_name: opts[:repo_name], # || parent.builder.dom&[:PackageJson]&[:repo_name]
|
23
|
+
# username: opts[:username] || default_PackageJson_username, # || parent.builder.dom&[:PackageJson]&[:username]
|
24
|
+
# organization: opts[:organization] # || parent.builder.dom&[:PackageJson]&[:organization]
|
25
|
+
# }
|
26
|
+
|
27
|
+
# parent.builder.group_set(:PackageJson, **repo_info_hash(**defaults))
|
28
|
+
end
|
29
|
+
|
30
|
+
# ----------------------------------------------------------------------
|
31
|
+
# Fluent interface
|
32
|
+
# ----------------------------------------------------------------------
|
33
|
+
|
34
|
+
# Change context to production, new dependencies will be for production
|
35
|
+
def production
|
36
|
+
set_dependency_type(:production)
|
37
|
+
|
38
|
+
self
|
39
|
+
end
|
40
|
+
|
41
|
+
# Change context to development, new dependencies will be for development
|
42
|
+
def development
|
43
|
+
set_dependency_type(:development)
|
44
|
+
|
45
|
+
self
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Attach configuration to the KBuilder module
|
4
|
+
module KDirector
|
5
|
+
module Dsls
|
6
|
+
module Children
|
7
|
+
# PackageJson configuration extension for attachment to KConfig::Configuration
|
8
|
+
module PackageJsonConfigurationExtension
|
9
|
+
def package_json
|
10
|
+
return @package_json if defined? @package_json
|
11
|
+
|
12
|
+
@package_json = PackageJsonConfiguration.new
|
13
|
+
@package_json.set_default_package_groups
|
14
|
+
@package_json
|
15
|
+
end
|
16
|
+
|
17
|
+
def package_json_debug
|
18
|
+
package_json.debug
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# PackageJson Configuration
|
23
|
+
class PackageJsonConfiguration
|
24
|
+
include KLog::Logging
|
25
|
+
|
26
|
+
PackageGroup = Struct.new(:key, :description, :package_names)
|
27
|
+
|
28
|
+
attr_accessor :package_groups
|
29
|
+
|
30
|
+
def initialize
|
31
|
+
@package_groups = {}
|
32
|
+
end
|
33
|
+
|
34
|
+
def set_package_group(key, description, package_names)
|
35
|
+
package_groups[key] = PackageGroup.new(key, description, package_names)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Setup the default package groups
|
39
|
+
def set_default_package_groups
|
40
|
+
set_package_group('webpack' , 'Webpack V5', %w[webpack webpack-cli webpack-dev-server])
|
41
|
+
set_package_group('swc' , 'SWC Transpiler', %w[@swc/cli @swc/core swc-loader])
|
42
|
+
set_package_group('babel' , 'Babel Transpiler', %w[@babel/core @babel/cli @babel/preset-env babel-loader])
|
43
|
+
set_package_group('typescript' , 'Typescript', %w[typescript ts-loader])
|
44
|
+
set_package_group('semantic-release', 'Semantic Release', %w[semantic-release github:klueless-js/semantic-release-rubygem @semantic-release/changelog @semantic-release/git])
|
45
|
+
end
|
46
|
+
|
47
|
+
def debug
|
48
|
+
log.structure(package_groups, convert_data_to: :open_struct)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
KConfig::Configuration.register(:package_json, KDirector::Dsls::Children::PackageJsonConfigurationExtension)
|
@@ -9,26 +9,19 @@ module KDirector
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def github(**opts, &block)
|
12
|
-
github =
|
12
|
+
github = KDirector::Dsls::Children::Github.new(self, **opts)
|
13
13
|
github.instance_eval(&block)
|
14
14
|
|
15
15
|
self
|
16
16
|
end
|
17
17
|
|
18
18
|
def blueprint(**opts, &block)
|
19
|
-
blueprint =
|
19
|
+
blueprint = KDirector::Dsls::Children::Blueprint.new(self, **opts)
|
20
20
|
blueprint.instance_eval(&block)
|
21
21
|
|
22
22
|
self
|
23
23
|
end
|
24
24
|
|
25
|
-
# def blueprint(**opts, &block)
|
26
|
-
# blueprint = Dsl::Blueprint.new(self, **opts)
|
27
|
-
# blueprint.instance_eval(&block)
|
28
|
-
|
29
|
-
# self
|
30
|
-
# end
|
31
|
-
|
32
25
|
# def app(**opts, &block)
|
33
26
|
# app = Dsl::Nuxt3App.new(self, **opts)
|
34
27
|
# app.instance_eval(&block)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module KDirector
|
4
|
+
module Dsls
|
5
|
+
# RubyGemDsl is a DSL for generating RubyGem projects.
|
6
|
+
class RubyGemDsl < KDirector::Directors::BaseDirector
|
7
|
+
def default_template_base_folder
|
8
|
+
'ruby/gem'
|
9
|
+
end
|
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 blueprint(**opts, &block)
|
19
|
+
blueprint = KDirector::Dsls::Children::Blueprint.new(self, **opts)
|
20
|
+
blueprint.instance_eval(&block) if block_given?
|
21
|
+
|
22
|
+
self
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/k_director/version.rb
CHANGED
data/lib/k_director.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'k_config'
|
3
4
|
require 'k_log'
|
4
5
|
require 'k_util'
|
5
6
|
require 'k_builder'
|
@@ -12,7 +13,10 @@ require_relative 'k_director/directors/child_director'
|
|
12
13
|
require_relative 'k_director/directors/data'
|
13
14
|
require_relative 'k_director/dsls/children/blueprint'
|
14
15
|
require_relative 'k_director/dsls/children/github'
|
16
|
+
require_relative 'k_director/dsls/children/package_json_configuration'
|
17
|
+
require_relative 'k_director/dsls/children/package_json'
|
15
18
|
require_relative 'k_director/dsls/nuxt3_dsl'
|
19
|
+
require_relative 'k_director/dsls/ruby_gem_dsl'
|
16
20
|
|
17
21
|
module KDirector
|
18
22
|
# raise KDirector::Error, 'Sample message'
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "k_director",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.8.1",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "k_director",
|
9
|
-
"version": "0.
|
9
|
+
"version": "0.8.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
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k_director
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.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-
|
11
|
+
date: 2022-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: k_config
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.0
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: k_log
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,7 +117,10 @@ files:
|
|
103
117
|
- lib/k_director/directors/data.rb
|
104
118
|
- lib/k_director/dsls/children/blueprint.rb
|
105
119
|
- lib/k_director/dsls/children/github.rb
|
120
|
+
- lib/k_director/dsls/children/package_json.rb
|
121
|
+
- lib/k_director/dsls/children/package_json_configuration.rb
|
106
122
|
- lib/k_director/dsls/nuxt3_dsl.rb
|
123
|
+
- lib/k_director/dsls/ruby_gem_dsl.rb
|
107
124
|
- lib/k_director/version.rb
|
108
125
|
- package-lock.json
|
109
126
|
- package.json
|