k_director 0.12.1 → 0.14.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/.builders/boot.rb +1 -1
- data/docs/CHANGELOG.md +21 -0
- data/k_director.gemspec +1 -0
- data/lib/k_director/builders/dom_builder.rb +33 -30
- data/lib/k_director/directors/base_director.rb +7 -5
- data/lib/k_director/version.rb +1 -1
- data/lib/k_director.rb +1 -0
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc4ed2368c8a9ce4434bc212d09ea17691937d586839fedbcfbb76b34eeac9e9
|
4
|
+
data.tar.gz: 52ae2c7386c007d1b07435dbe39726d05bb2264af13b4418d7b3533e74aafc89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6b87e758c5c0368c180c16023c592aa973934c80478de589e39930bbfca3c305ada8d897e6df58616e64cc3f1aaba882536db59d81434209899a8636c15f3d7
|
7
|
+
data.tar.gz: b531ad193ff767017798a52a387cf40841c1a1fc7f2a85b5bfd0a7fec825dd5fea5a9f35405c0fad090c40f6accf0158bdd03221019fe9c2b22f48b27729a420
|
data/.builders/boot.rb
CHANGED
data/docs/CHANGELOG.md
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
# [0.14.0](https://github.com/klueless-io/k_director/compare/v0.13.0...v0.14.0) (2022-02-27)
|
2
|
+
|
3
|
+
|
4
|
+
### Features
|
5
|
+
|
6
|
+
* update ready for DrawioDSL ([ee5fc75](https://github.com/klueless-io/k_director/commit/ee5fc757c6983b307adcb6bf5e7eb0a887a83afc))
|
7
|
+
|
8
|
+
# [0.13.0](https://github.com/klueless-io/k_director/compare/v0.12.1...v0.13.0) (2022-02-11)
|
9
|
+
|
10
|
+
|
11
|
+
### Features
|
12
|
+
|
13
|
+
* dom builder set method now uses value: and will support hashes as a value ([24145a1](https://github.com/klueless-io/k_director/commit/24145a15d03b9670a605846b5c1dcb4635bb374d))
|
14
|
+
|
15
|
+
## [0.12.1](https://github.com/klueless-io/k_director/compare/v0.12.0...v0.12.1) (2022-02-11)
|
16
|
+
|
17
|
+
|
18
|
+
### Bug Fixes
|
19
|
+
|
20
|
+
* builder can be configured via #default_builder_type ([f82c46f](https://github.com/klueless-io/k_director/commit/f82c46f10aea06b154d5ac957e71cce1216cae4a))
|
21
|
+
|
1
22
|
# [0.12.0](https://github.com/klueless-io/k_director/compare/v0.11.3...v0.12.0) (2022-02-11)
|
2
23
|
|
3
24
|
|
data/k_director.gemspec
CHANGED
@@ -17,18 +17,18 @@ module KDirector
|
|
17
17
|
# Set many key/value pairs gainst a group
|
18
18
|
#
|
19
19
|
# example:
|
20
|
-
#
|
20
|
+
# group_set(:github, repo_name: 'repo-name', organization: 'org-name')
|
21
21
|
def group_set(group = nil, **opts)
|
22
22
|
return if group.nil? && opts.empty?
|
23
23
|
|
24
24
|
if group.nil?
|
25
25
|
opts.each do |key, value|
|
26
|
-
set(key, value)
|
26
|
+
set(key, value: value)
|
27
27
|
end
|
28
28
|
else
|
29
29
|
dom[group] = {} if opts.empty? # initialize the group name if no options are provided
|
30
30
|
opts.each do |key, value|
|
31
|
-
set(group, key, value)
|
31
|
+
set(group, key, value: value)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -39,36 +39,39 @@ module KDirector
|
|
39
39
|
# - initialize key/array pairs
|
40
40
|
#
|
41
41
|
# example:
|
42
|
-
# set(:a, 1)
|
43
|
-
# set(:a, [])
|
44
|
-
# set(:a, [1, 2, 3])
|
45
|
-
# set(:a,
|
46
|
-
# set(:a, :
|
47
|
-
# set(:a, :
|
48
|
-
# set(:a, :b, :c,
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
42
|
+
# set(:a, value: 1)
|
43
|
+
# set(:a, value: [])
|
44
|
+
# set(:a, value: [1, 2, 3])
|
45
|
+
# set(:a, value: { a: 1, b: 2 })
|
46
|
+
# set(:a, value: some_value, default_value: 'use if not supplied')
|
47
|
+
# set(:a, value: :b, 'nested value')
|
48
|
+
# set(:a, value: :b, :c, 'deeply nested value')
|
49
|
+
# set(:a, value: :b, :c, :d, :e, :f, 'depth is no barrier')
|
50
|
+
def set(*keys, value: nil, default_value: nil)
|
51
|
+
size = keys.size
|
52
|
+
|
53
|
+
raise ArgumentError, 'set requires 1 or more keys' if size < 1
|
54
|
+
|
55
|
+
target = initialize_hierarchy(keys)
|
56
|
+
|
57
|
+
set_kv(target, keys[size - 1], value, default_value: default_value)
|
57
58
|
end
|
58
59
|
|
59
60
|
# add value to array
|
60
|
-
#
|
61
|
-
# add(:a,
|
62
|
-
# add(:a,
|
63
|
-
# add(:a,
|
64
|
-
|
65
|
-
|
61
|
+
# add(:a, 1)
|
62
|
+
# add(:a, 2)
|
63
|
+
# add(:a, 3)
|
64
|
+
# add(:a, {key: 1})
|
65
|
+
# add(:a, {key: 2})
|
66
|
+
# add(:a, {key: 3})
|
67
|
+
def add(*keys, value: nil, default_value: nil)
|
68
|
+
size = keys.size
|
66
69
|
|
67
|
-
raise ArgumentError, 'add requires
|
70
|
+
raise ArgumentError, 'add requires 1 or more keys' if size < 1
|
68
71
|
|
69
|
-
target = initialize_hierarchy(
|
72
|
+
target = initialize_hierarchy(keys)
|
70
73
|
|
71
|
-
add_kv(target,
|
74
|
+
add_kv(target, keys[size - 1], value, default_value: default_value)
|
72
75
|
end
|
73
76
|
|
74
77
|
def debug
|
@@ -85,12 +88,12 @@ module KDirector
|
|
85
88
|
|
86
89
|
private
|
87
90
|
|
88
|
-
def initialize_hierarchy(
|
91
|
+
def initialize_hierarchy(keys)
|
89
92
|
target = @dom
|
90
93
|
|
91
|
-
return target unless
|
94
|
+
return target unless keys.size > 1
|
92
95
|
|
93
|
-
|
96
|
+
keys.slice(0..-2).each_with_index do |key, _index|
|
94
97
|
target[key] = {} unless target.key?(key)
|
95
98
|
target = target[key]
|
96
99
|
end
|
@@ -18,15 +18,15 @@ module KDirector
|
|
18
18
|
new(k_builder, builder, **opts)
|
19
19
|
end
|
20
20
|
|
21
|
+
def default_builder_type(type)
|
22
|
+
@builder_type = type
|
23
|
+
end
|
24
|
+
|
21
25
|
def builder_type
|
22
26
|
return @builder_type if defined? @builder_type
|
23
27
|
|
24
28
|
@builder_type = KDirector::Builders::ActionsBuilder
|
25
29
|
end
|
26
|
-
|
27
|
-
def default_builder_type(type)
|
28
|
-
@builder_type = type
|
29
|
-
end
|
30
30
|
end
|
31
31
|
|
32
32
|
attr_reader :builder
|
@@ -58,7 +58,9 @@ module KDirector
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def dom
|
61
|
-
builder.dom
|
61
|
+
return builder.dom if defined?(builder.dom)
|
62
|
+
|
63
|
+
nil
|
62
64
|
end
|
63
65
|
|
64
66
|
def typed_dom
|
data/lib/k_director/version.rb
CHANGED
data/lib/k_director.rb
CHANGED
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "k_director",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.14.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.14.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,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k_director
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.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-
|
11
|
+
date: 2022-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: k_config
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.0.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: nokogiri
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.13'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.13'
|
83
97
|
description: " KDirector provides domain specific language implementations for
|
84
98
|
code generation\n"
|
85
99
|
email:
|