k_manager 0.0.30 → 0.0.32

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: e37f7eaec478502778d24559e32635bf448788a5f89598961b3b5dc1d2109168
4
- data.tar.gz: f51fe8850fdab828076e197902b88037aa99527e8c9f5faab4ab11ff4eec7c33
3
+ metadata.gz: e3058f62c501f797ee6ae5e970d0a0a59d333e3ebb290dc83c0b691fa33bc0c9
4
+ data.tar.gz: b63576b8b85f8b475dea7aa6ba7df77118393bfdd9908a14a3d760e2a004bd47
5
5
  SHA512:
6
- metadata.gz: 64d7a94731b67333f2d271c6b0fe9b04841b3d0a4fdaa7fa014a04af5fd3bb38ff888ded7b96ea74bef3f8239f5759f4edc5ffa9c5e02ddfaca4dba197d88f63
7
- data.tar.gz: a7ce44a02dde86c04c40481ac56dc73adf3340e538f183b51dbd61e02cb122674d3decd58451acffda39351ae9d3d657230a4489bf1fd6b67297ca6afb4a686b
6
+ metadata.gz: c158cd92a983e7df6d184f336118e44171fa33250511a872fba764d243c6dcf24f110d90b1e96d86ebab534dfa2450087c18f9d4466aa39a9e1d7958ee04d532
7
+ data.tar.gz: 28bd874b203cdf3d71bbcfbb029a465bad51ec71e355f42af85a50ca2e9c1366260b422b94df9f2e453db65aee90c3945d59c0db69697ef93fe91979f9f2274a
data/.builders/_.rb ADDED
@@ -0,0 +1 @@
1
+ # require_relative './path/here'
data/.builders/boot.rb ADDED
@@ -0,0 +1,66 @@
1
+ # Boot Sequence
2
+
3
+ include KLog::Logging
4
+
5
+ CONFIG_KEY = :k_manager
6
+
7
+ log.kv 'working folder', Dir.pwd
8
+
9
+ Handlebars::Helpers.configure do |config|
10
+ config.helper_config_file = File.join(Gem.loaded_specs['handlebars-helpers'].full_gem_path, '.handlebars_helpers.json')
11
+ config.string_formatter_config_file = File.join(Gem.loaded_specs['handlebars-helpers'].full_gem_path, '.handlebars_string_formatters.json')
12
+ end
13
+
14
+ def camel
15
+ require 'handlebars/helpers/string_formatting/camel'
16
+ Handlebars::Helpers::StringFormatting::Camel.new
17
+ end
18
+
19
+ def titleize
20
+ require 'handlebars/helpers/string_formatting/titleize'
21
+ Handlebars::Helpers::StringFormatting::Titleize.new
22
+ end
23
+
24
+ def pluralize
25
+ require 'handlebars/helpers/inflection/pluralize'
26
+ Handlebars::Helpers::Inflection::Pluralize.new
27
+ end
28
+
29
+ def singularize
30
+ require 'handlebars/helpers/inflection/singularize'
31
+ Handlebars::Helpers::Inflection::Singularize.new
32
+ end
33
+
34
+ def dasherize
35
+ require 'handlebars/helpers/string_formatting/dasherize'
36
+ Handlebars::Helpers::StringFormatting::Dasherize.new
37
+ end
38
+
39
+ def k_builder
40
+ @k_builder ||= KBuilder::BaseBuilder.init(KConfig.configuration(CONFIG_KEY))
41
+ end
42
+
43
+ KConfig.configure(CONFIG_KEY) do |config|
44
+ builder_folder = Dir.pwd
45
+ base_folder = File.expand_path('../', builder_folder)
46
+ global_template = File.expand_path('~/dev/kgems/k_templates/templates')
47
+
48
+ config.template_folders.add(:global_template , global_template)
49
+ config.template_folders.add(:template , File.expand_path('.templates', Dir.pwd))
50
+
51
+ config.target_folders.add(:app , base_folder)
52
+ config.target_folders.add(:builder , builder_folder)
53
+ config.target_folders.add(:graph , builder_folder, 'graph')
54
+ end
55
+
56
+ KConfig.configuration(CONFIG_KEY).debug
57
+
58
+ area = KManager.add_area(CONFIG_KEY)
59
+ resource_manager = area.resource_manager
60
+ resource_manager
61
+ .fileset
62
+ .glob('*.rb', exclude: ['boot.rb'])
63
+ .glob('generators/**/*.rb')
64
+ resource_manager.add_resources
65
+
66
+ KManager.boot
@@ -0,0 +1,90 @@
1
+ KManager.action :bootstrap do
2
+ action do
3
+ application_name = :k_manager
4
+
5
+ director = KDirector::Dsls::BasicDsl
6
+ .init(k_builder,
7
+ on_exist: :skip, # %i[skip write compare]
8
+ on_action: :queue # %i[queue execute]
9
+ )
10
+ .data(
11
+ application: application_name,
12
+ application_description: 'Add draw-io graph support',
13
+ author: 'David Cruwys',
14
+ author_email: 'david@ideasmen.com.au',
15
+ initial_semver: '1.0.0',
16
+ main_story: '',
17
+ copyright_date: '2022'
18
+ )
19
+ .github(
20
+ active: false,
21
+ repo_name: application_name
22
+ ) do
23
+ create_repository
24
+ # delete_repository
25
+ # list_repositories
26
+ open_repository
27
+ # run_command('git init')
28
+ end
29
+ .blueprint(
30
+ active: false,
31
+ name: :bin_hook,
32
+ description: 'initialize repository',
33
+ on_exist: :write) do
34
+
35
+ cd(:app)
36
+
37
+ run_command('git init')
38
+ add('.gitignore')
39
+
40
+ run_template_script('.git-setup.sh', dom: dom)
41
+
42
+ run_command("git add .; git commit -m 'chore: #{self.options.description.downcase}'; git push")
43
+ run_command("gh repo edit -d \"#{dom[:application_description]}\"")
44
+ end
45
+ .package_json(
46
+ active: false,
47
+ name: :package_json,
48
+ description: 'Set up the package.json file for semantic versioning'
49
+ ) do
50
+ self
51
+ .add('package.json', dom: dom)
52
+ .play_actions
53
+
54
+ # self
55
+ # .add_script('xxx', 'xxx')
56
+ # .sort
57
+ # .development
58
+ # .npm_add_group('xxx')
59
+
60
+ # run_command("git add .; git commit -m 'chore: #{self.options.description.downcase}'; git push")
61
+ end
62
+ .blueprint(
63
+ active: false,
64
+ name: :opinionated,
65
+ description: 'opinionated files',
66
+ on_exist: :write) do
67
+
68
+ cd(:app)
69
+
70
+ add('README.md' , dom: dom)
71
+
72
+ # add('index.html', dom: dom)
73
+ # add('main.css' , dom: dom)
74
+ # add('main.js' , dom: dom)
75
+
76
+ # run_command("git add .; git commit -m 'chore: #{self.options.description.downcase}'; git push")
77
+ end
78
+
79
+ director.play_actions
80
+ end
81
+ end
82
+
83
+ KManager.opts.app_name = 'k_manager'
84
+ KManager.opts.sleep = 2
85
+ KManager.opts.reboot_on_kill = 0
86
+ KManager.opts.reboot_sleep = 4
87
+ KManager.opts.exception_style = :short
88
+ KManager.opts.show.time_taken = true
89
+ KManager.opts.show.finished = true
90
+ KManager.opts.show.finished_message = 'FINISHED :)'
@@ -0,0 +1,37 @@
1
+ KManager.action :bootstrap do
2
+ action do
3
+ director = KDirector::Dsls::BasicDsl
4
+ .init(k_builder,
5
+ template_base_folder: 'drawio',
6
+ on_exist: :skip, # %i[skip write compare]
7
+ on_action: :queue # %i[queue execute]
8
+ )
9
+ .data(
10
+ )
11
+ .blueprint(
12
+ active: true,
13
+ name: :build_graph,
14
+ description: 'build a graph',
15
+ on_exist: :write) do
16
+
17
+ cd(:graph)
18
+
19
+ debug
20
+ add('xmen.txt', template_file: 'main.drawio')
21
+ add('xmen.drawio', template_file: 'main.drawio')
22
+ oadd('test.drawio', template_file: 'main.drawio')
23
+
24
+ end
25
+
26
+ director.play_actions
27
+ end
28
+ end
29
+
30
+ KManager.opts.app_name = 'k_manager'
31
+ KManager.opts.sleep = 2
32
+ KManager.opts.reboot_on_kill = 0
33
+ KManager.opts.reboot_sleep = 4
34
+ KManager.opts.exception_style = :short
35
+ KManager.opts.show.time_taken = true
36
+ KManager.opts.show.finished = true
37
+ KManager.opts.show.finished_message = 'FINISHED :)'
@@ -0,0 +1,202 @@
1
+ <mxfile host="65bd71144e">
2
+ <diagram id="Sk36w1yPGO5rhA4B0xN7" name="Page-1">
3
+ <mxGraphModel dx="926" dy="583" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
4
+ <root>
5
+ <mxCell id="0"/>
6
+ <mxCell id="1" parent="0"/>
7
+ <mxCell id="3" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
8
+ <mxGeometry x="40" y="40" width="120" height="60" as="geometry"/>
9
+ </mxCell>
10
+ <mxCell id="4" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
11
+ <mxGeometry x="40" y="120" width="120" height="60" as="geometry"/>
12
+ </mxCell>
13
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-19" value="" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
14
+ <mxGeometry x="40" y="210" width="120" height="80" as="geometry"/>
15
+ </mxCell>
16
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-20" value="" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
17
+ <mxGeometry x="40" y="320" width="80" height="80" as="geometry"/>
18
+ </mxCell>
19
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-21" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
20
+ <mxGeometry x="40" y="440" width="80" height="80" as="geometry"/>
21
+ </mxCell>
22
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-22" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
23
+ <mxGeometry x="40" y="560" width="80" height="80" as="geometry"/>
24
+ </mxCell>
25
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-23" value="" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
26
+ <mxGeometry x="40" y="670" width="120" height="60" as="geometry"/>
27
+ </mxCell>
28
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-24" value="" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
29
+ <mxGeometry x="240" y="40" width="120" height="80" as="geometry"/>
30
+ </mxCell>
31
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-25" value="" style="triangle;whiteSpace=wrap;html=1;" vertex="1" parent="1">
32
+ <mxGeometry x="240" y="150" width="60" height="80" as="geometry"/>
33
+ </mxCell>
34
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-26" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
35
+ <mxGeometry x="240" y="280" width="60" height="80" as="geometry"/>
36
+ </mxCell>
37
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-27" value="" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" vertex="1" parent="1">
38
+ <mxGeometry x="240" y="420" width="120" height="80" as="geometry"/>
39
+ </mxCell>
40
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-28" value="" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;" vertex="1" parent="1">
41
+ <mxGeometry x="240" y="540" width="120" height="80" as="geometry"/>
42
+ </mxCell>
43
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-29" value="" style="shape=internalStorage;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
44
+ <mxGeometry x="240" y="670" width="80" height="80" as="geometry"/>
45
+ </mxCell>
46
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-30" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;" vertex="1" parent="1">
47
+ <mxGeometry x="430" y="140" width="120" height="80" as="geometry"/>
48
+ </mxCell>
49
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-31" value="" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
50
+ <mxGeometry x="430" y="40" width="120" height="60" as="geometry"/>
51
+ </mxCell>
52
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-32" value="" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
53
+ <mxGeometry x="430" y="270" width="120" height="80" as="geometry"/>
54
+ </mxCell>
55
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-33" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
56
+ <mxGeometry x="430" y="390" width="120" height="60" as="geometry"/>
57
+ </mxCell>
58
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-34" value="" style="shape=tape;whiteSpace=wrap;html=1;" vertex="1" parent="1">
59
+ <mxGeometry x="430" y="490" width="120" height="100" as="geometry"/>
60
+ </mxCell>
61
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-35" value="" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;" vertex="1" parent="1">
62
+ <mxGeometry x="430" y="620" width="80" height="100" as="geometry"/>
63
+ </mxCell>
64
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-36" value="" style="shape=card;whiteSpace=wrap;html=1;" vertex="1" parent="1">
65
+ <mxGeometry x="610" y="40" width="80" height="100" as="geometry"/>
66
+ </mxCell>
67
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-37" value="" style="shape=callout;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;" vertex="1" parent="1">
68
+ <mxGeometry x="610" y="180" width="120" height="80" as="geometry"/>
69
+ </mxCell>
70
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-38" value="Actor" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
71
+ <mxGeometry x="610" y="300" width="30" height="60" as="geometry"/>
72
+ </mxCell>
73
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-39" value="Vertical Container" style="swimlane;" vertex="1" parent="1">
74
+ <mxGeometry x="600" y="414" width="200" height="200" as="geometry"/>
75
+ </mxCell>
76
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-40" value="Horizontal Container" style="swimlane;horizontal=0;" vertex="1" parent="1">
77
+ <mxGeometry x="600" y="640" width="200" height="200" as="geometry"/>
78
+ </mxCell>
79
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-41" value="List" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" vertex="1" parent="1">
80
+ <mxGeometry x="30" y="850" width="140" height="120" as="geometry"/>
81
+ </mxCell>
82
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-42" value="Item 1" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;" vertex="1" parent="EIdmhRiufcmdx8XjM1u1-41">
83
+ <mxGeometry y="30" width="140" height="30" as="geometry"/>
84
+ </mxCell>
85
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-43" value="Item 2" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;" vertex="1" parent="EIdmhRiufcmdx8XjM1u1-41">
86
+ <mxGeometry y="60" width="140" height="30" as="geometry"/>
87
+ </mxCell>
88
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-44" value="Item 3" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;" vertex="1" parent="EIdmhRiufcmdx8XjM1u1-41">
89
+ <mxGeometry y="90" width="140" height="30" as="geometry"/>
90
+ </mxCell>
91
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-45" value="List Item" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;" vertex="1" parent="1">
92
+ <mxGeometry x="210" y="850" width="80" height="30" as="geometry"/>
93
+ </mxCell>
94
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-46" value="" style="curved=1;endArrow=classic;html=1;" edge="1" parent="1">
95
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
96
+ <mxPoint x="330" y="900" as="sourcePoint"/>
97
+ <mxPoint x="380" y="850" as="targetPoint"/>
98
+ <Array as="points">
99
+ <mxPoint x="380" y="900"/>
100
+ <mxPoint x="330" y="850"/>
101
+ </Array>
102
+ </mxGeometry>
103
+ </mxCell>
104
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-47" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;" edge="1" parent="1">
105
+ <mxGeometry width="100" height="100" relative="1" as="geometry">
106
+ <mxPoint x="460" y="910" as="sourcePoint"/>
107
+ <mxPoint x="510" y="850" as="targetPoint"/>
108
+ </mxGeometry>
109
+ </mxCell>
110
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-48" value="" style="shape=flexArrow;endArrow=classic;html=1;" edge="1" parent="1">
111
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
112
+ <mxPoint x="560" y="900" as="sourcePoint"/>
113
+ <mxPoint x="610" y="850" as="targetPoint"/>
114
+ </mxGeometry>
115
+ </mxCell>
116
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-49" value="" style="endArrow=none;dashed=1;html=1;" edge="1" parent="1">
117
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
118
+ <mxPoint x="660" y="910" as="sourcePoint"/>
119
+ <mxPoint x="710" y="860" as="targetPoint"/>
120
+ </mxGeometry>
121
+ </mxCell>
122
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-50" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;" edge="1" parent="1">
123
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
124
+ <mxPoint x="760" y="910" as="sourcePoint"/>
125
+ <mxPoint x="810" y="860" as="targetPoint"/>
126
+ </mxGeometry>
127
+ </mxCell>
128
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-51" value="" style="endArrow=none;html=1;" edge="1" parent="1">
129
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
130
+ <mxPoint x="220" y="970" as="sourcePoint"/>
131
+ <mxPoint x="270" y="920" as="targetPoint"/>
132
+ </mxGeometry>
133
+ </mxCell>
134
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-52" value="" style="endArrow=classic;startArrow=classic;html=1;" edge="1" parent="1">
135
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
136
+ <mxPoint x="320" y="970" as="sourcePoint"/>
137
+ <mxPoint x="370" y="920" as="targetPoint"/>
138
+ </mxGeometry>
139
+ </mxCell>
140
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-53" value="" style="endArrow=classic;html=1;" edge="1" parent="1">
141
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
142
+ <mxPoint x="420" y="970" as="sourcePoint"/>
143
+ <mxPoint x="470" y="920" as="targetPoint"/>
144
+ </mxGeometry>
145
+ </mxCell>
146
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-54" value="" style="shape=link;html=1;" edge="1" parent="1">
147
+ <mxGeometry width="100" relative="1" as="geometry">
148
+ <mxPoint x="30" y="1030" as="sourcePoint"/>
149
+ <mxPoint x="130" y="1030" as="targetPoint"/>
150
+ </mxGeometry>
151
+ </mxCell>
152
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-55" value="" style="endArrow=classic;html=1;" edge="1" parent="1">
153
+ <mxGeometry relative="1" as="geometry">
154
+ <mxPoint x="190" y="1030" as="sourcePoint"/>
155
+ <mxPoint x="290" y="1030" as="targetPoint"/>
156
+ </mxGeometry>
157
+ </mxCell>
158
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-56" value="Label" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="EIdmhRiufcmdx8XjM1u1-55">
159
+ <mxGeometry relative="1" as="geometry"/>
160
+ </mxCell>
161
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-57" value="" style="endArrow=classic;html=1;" edge="1" parent="1">
162
+ <mxGeometry relative="1" as="geometry">
163
+ <mxPoint x="340" y="1030" as="sourcePoint"/>
164
+ <mxPoint x="500" y="1030" as="targetPoint"/>
165
+ </mxGeometry>
166
+ </mxCell>
167
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-58" value="Label" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="EIdmhRiufcmdx8XjM1u1-57">
168
+ <mxGeometry relative="1" as="geometry"/>
169
+ </mxCell>
170
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-59" value="Source" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;" connectable="0" vertex="1" parent="EIdmhRiufcmdx8XjM1u1-57">
171
+ <mxGeometry x="-1" relative="1" as="geometry"/>
172
+ </mxCell>
173
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-60" value="" style="endArrow=classic;html=1;" edge="1" parent="1">
174
+ <mxGeometry relative="1" as="geometry">
175
+ <mxPoint x="560" y="1030" as="sourcePoint"/>
176
+ <mxPoint x="720" y="1030" as="targetPoint"/>
177
+ </mxGeometry>
178
+ </mxCell>
179
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-61" value="Label" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="EIdmhRiufcmdx8XjM1u1-60">
180
+ <mxGeometry relative="1" as="geometry"/>
181
+ </mxCell>
182
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-62" value="Source" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;" connectable="0" vertex="1" parent="EIdmhRiufcmdx8XjM1u1-60">
183
+ <mxGeometry x="-1" relative="1" as="geometry"/>
184
+ </mxCell>
185
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-63" value="Target" style="edgeLabel;resizable=0;html=1;align=right;verticalAlign=bottom;" connectable="0" vertex="1" parent="EIdmhRiufcmdx8XjM1u1-60">
186
+ <mxGeometry x="1" relative="1" as="geometry"/>
187
+ </mxCell>
188
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-64" value="" style="endArrow=classic;html=1;" edge="1" parent="1">
189
+ <mxGeometry relative="1" as="geometry">
190
+ <mxPoint x="570" y="1070" as="sourcePoint"/>
191
+ <mxPoint x="670" y="1070" as="targetPoint"/>
192
+ </mxGeometry>
193
+ </mxCell>
194
+ <mxCell id="EIdmhRiufcmdx8XjM1u1-65" value="" style="shape=message;html=1;outlineConnect=0;" vertex="1" parent="EIdmhRiufcmdx8XjM1u1-64">
195
+ <mxGeometry width="20" height="14" relative="1" as="geometry">
196
+ <mxPoint x="-10" y="-7" as="offset"/>
197
+ </mxGeometry>
198
+ </mxCell>
199
+ </root>
200
+ </mxGraphModel>
201
+ </diagram>
202
+ </mxfile>
@@ -0,0 +1,10 @@
1
+ <mxfile host="65bd71144e">
2
+ <diagram id="Sk36w1yPGO5rhA4B0xN7" name="Page-1">
3
+ <mxGraphModel dx="416" dy="572" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
4
+ <root>
5
+ <mxCell id="0"/>
6
+ <mxCell id="1" parent="0"/>
7
+ </root>
8
+ </mxGraphModel>
9
+ </diagram>
10
+ </mxfile>
@@ -0,0 +1,10 @@
1
+ <mxfile host="65bd71144e">
2
+ <diagram id="Sk36w1yPGO5rhA4B0xN7" name="Page-1">
3
+ <mxGraphModel dx="416" dy="572" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
4
+ <root>
5
+ <mxCell id="0"/>
6
+ <mxCell id="1" parent="0"/>
7
+ </root>
8
+ </mxGraphModel>
9
+ </diagram>
10
+ </mxfile>
data/.rubocop.yml CHANGED
@@ -1,4 +1,8 @@
1
1
  require: rubocop-rake
2
+ inherit_mode:
3
+ merge:
4
+ - Exclude # see: https://stackoverflow.com/a/70818366/473923
5
+ - AllowedNames
2
6
  AllCops:
3
7
  TargetRubyVersion: 2.5
4
8
  DisplayCopNames: true
@@ -8,7 +12,6 @@ AllCops:
8
12
  - "_/**/*"
9
13
  - "spec/samples/**/*"
10
14
  - "spec/k_manager/scenarios/**/*"
11
-
12
15
  Metrics/BlockLength:
13
16
  Exclude:
14
17
  - "**/spec/**/*"
@@ -64,6 +67,9 @@ Naming/MemoizedInstanceVariableName:
64
67
  Naming/VariableNumber:
65
68
  Exclude:
66
69
  - "**/spec/**/*"
70
+ Naming/MethodParameterName:
71
+ AllowedNames:
72
+ - as
67
73
  Style/EmptyMethod:
68
74
  Exclude:
69
75
  - "**/spec/**/*"
data/Gemfile CHANGED
@@ -32,6 +32,7 @@ if ENV['KLUE_LOCAL_GEMS']&.to_s&.downcase == 'true'
32
32
  gem 'k_builder' , path: '../k_builder'
33
33
  gem 'k_builder-dotnet' , path: '../k_builder-dotnet'
34
34
  # gem 'k_builder-package_json' , path: '../k_builder-package_json'
35
+ gem 'drawio_dsl' , path: '../drawio_dsl'
35
36
  gem 'k_builder-webpack5' , path: '../k_builder-webpack5'
36
37
  gem 'k_config' , path: '../k_config'
37
38
  gem 'k_decor' , path: '../k_decor'
data/docs/flow.drawio CHANGED
@@ -1,16 +1 @@
1
- <mxfile host="65bd71144e">
2
- <diagram id="AE9tsI4e_FXgj975v7li" name="Page-1">
3
- <mxGraphModel dx="1087" dy="583" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" background="#ffffff" math="0" shadow="0">
4
- <root>
5
- <mxCell id="0"/>
6
- <mxCell id="1" parent="0"/>
7
- <mxCell id="2" value="KManager" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
8
- <mxGeometry x="200" y="70" width="120" height="60" as="geometry"/>
9
- </mxCell>
10
- <mxCell id="3" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
11
- <mxGeometry x="390" y="210" width="120" height="60" as="geometry"/>
12
- </mxCell>
13
- </root>
14
- </mxGraphModel>
15
- </diagram>
16
- </mxfile>
1
+ <mxfile host="Electron" modified="2022-03-15T20:30:15.594Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/16.5.1 Chrome/96.0.4664.110 Electron/16.0.7 Safari/537.36" version="16.5.1" etag="y7uUaI553n6FR_Tt1bNI" type="device"><diagram id="iz_p9EhzHe2lvTp9jl-W" name="Page-1">5VfbcpswEP0aP6YDEmD8mDrX3qadTCdt3xRYQLaMGCHbkK+vAGFucpq2TqYzxQ9mz2p1OWclLTO83BTXgmTJRx4CmyErLGb4YoaQbVue+quQskEWi3kDxIKGulEH3NFH0KCl0S0NIR80lJwzSbMhGPA0hUAOMCIE3w+bRZwNR81IDBPgLiBsit7TUCbturxF57gBGid6aB/p9T2QYB0Lvk31eDOEo/pp3BvS9qUXmick5PsehC9neCk4l83bplgCq7htaWviro54D/MWkMrnBDy+P7sqpFVE/vm7tZvdfvnhbM+0eLksWz4gVPRoM+Wp+ntbLxKqbixlcSETHvOUsA+cZwq0FbgCKUstLtlKrqBEbpj2QkHltyr8zdzV5vee66LQXddGqQ3FV1Z1FzEoziuhFRZRxpaccVHPFYcE/Cio2krB19DzeIEPD5HyNOurFnWUNg3lfCsC3QrpRCQiBvkEfc5BR7U/gG9AilLFCWBE0t1wSKITNT6068RSL1ovs3Z6PjvCttBm20i3oUj7hEq4y0i9oL3auUNB8jXIINHGiNTIrX5GUutHR7Q5knNWzfJtxFPZa9s8jYxN2tsHNQzk70BIKHrQlFTt9fR20seNo819t3fRQmNJb9vaLfg3MljFqkw+WSt7Z4v8+iu9dVdekwNPa6N6UccZPEOXPlkTkSaUj4RTj++bhMMeXuDwNPz7aCgAmgpgz00CeC8lgP+vCKBuBD/EJgEQdhz3RALYzkiA+VQB3yCA/1L8L/4v/p0x/97r8T89ay7ITjmRda+6RdYNCJiQ316katWEMWA8FmSjuMhAUDUDEGPf587xK70iWkBb1J3ogHfxkF8bG04YZCD4FAeM8ZZ3X7lIQv0i6VAXGYskRbMomyi3NQ+lVWV0YbXVxv1ZWXS8BhrWSuiVyqKn5nOyWulI/hrIOprSyB0VLYZLE1mmS9P9/ZxWZvdRUft6X2748ic=</diagram></mxfile>
data/docs/shapes ADDED
@@ -0,0 +1,75 @@
1
+ tableLine
2
+ table
3
+ tableRow
4
+ cube
5
+ isoRectangle
6
+ waypoint
7
+ isoRectangle
8
+ isoCube
9
+ datastore
10
+ note
11
+ note2
12
+ isoCube2
13
+ cylinder2
14
+ cylinder3
15
+ switch
16
+ folder
17
+ umlState
18
+ card
19
+ tape
20
+ document
21
+ parallelogram
22
+ trapezoid
23
+ curlyBracket
24
+ parallelMarker
25
+ process
26
+ process2
27
+ transparent
28
+ callout
29
+ step
30
+ hexagon
31
+ plus
32
+ ext
33
+ message
34
+ umlActor
35
+ umlBoundary
36
+ umlEntity
37
+ umlDestroy
38
+ umlControl
39
+ umlLifeline
40
+ umlFrame
41
+ lollipop
42
+ requires
43
+ requiredInterface
44
+ providedRequiredInterface
45
+ module
46
+ component
47
+ associativeEntity
48
+ endState
49
+ startState
50
+ link
51
+ flexArrow
52
+ manualInput
53
+ internalStorage
54
+ corner
55
+ crossbar
56
+ tee
57
+ singleArrow
58
+ doubleArrow
59
+ dataStorage
60
+ or
61
+ xor
62
+ loopLimit
63
+ offPageConnector
64
+ tapeData
65
+ orEllipse
66
+ sumEllipse
67
+ sortShape
68
+ collate
69
+ dimension
70
+ partialRectangle
71
+ lineEllipse
72
+ delay
73
+ cross
74
+ display
75
+ filledEdge
data/k_manager.gemspec CHANGED
@@ -38,6 +38,7 @@ Gem::Specification.new do |spec|
38
38
  spec.require_paths = ['lib']
39
39
  # spec.extensions = ['ext/k_manager/extconf.rb']
40
40
 
41
+ spec.add_dependency 'drawio_dsl', '~> 0.1'
41
42
  spec.add_dependency 'dry-struct', '~> 1'
42
43
  spec.add_dependency 'filewatcher', '~> 2.0.0.beta5'
43
44
  spec.add_dependency 'k_builder', '~> 0.0.0'
@@ -47,6 +48,7 @@ Gem::Specification.new do |spec|
47
48
  spec.add_dependency 'k_ext-github', '~> 0.0.0'
48
49
  spec.add_dependency 'k_fileset', '~> 0.0.0'
49
50
  spec.add_dependency 'k_log', '~> 0.0.0'
51
+
50
52
  # spec.add_dependency 'k_type' , '~> 0.0.0'
51
53
  # spec.add_dependency 'k_util' , '~> 0.0.0'
52
54
  spec.add_dependency 'dry-cli', '~> 0.7.0'
@@ -137,6 +137,10 @@ module KManager
137
137
  @active_uri = nil
138
138
  end
139
139
 
140
+ def boot
141
+ KManager.fire_actions(:load_content, :register_document, :preload_document, :load_document)
142
+ end
143
+
140
144
  def reboot
141
145
  puts 'Fire reboot'
142
146
  KManager.opts.reboot_on_kill = 1
@@ -5,6 +5,10 @@ module KManager
5
5
  # Generate dashboard information on the console
6
6
  #
7
7
  # TODO: ConsoleDashboard and HtmlConsole
8
+ # dashboard = KManager::Overview::Dashboard.new(KManager.manager)
9
+ # dashboard.areas
10
+ # dashboard.resources
11
+ # dashboard.documents
8
12
  class Dashboard
9
13
  include KLog::Logging
10
14
 
@@ -83,6 +87,7 @@ module KManager
83
87
  # # { path: { display_method: -> (row) { row.resource_path } } },
84
88
  # { exist: { display_method: -> (row) { row.resource_exist } } },
85
89
  { document_id: { display_method: ->(row) { blank_zero(row.document_id) } } },
90
+ { state: { display_method: ->(row) { document_state(row.document_state) } } },
86
91
  { data: { display_method: ->(row) { row.document_data } } },
87
92
  { error_count: { display_method: ->(row) { blank_zero(row.document_errors.length) } } },
88
93
  { key: { display_method: ->(row) { row.document_key } } },
@@ -134,6 +139,20 @@ module KManager
134
139
  value
135
140
  end
136
141
 
142
+ # Valid states are:
143
+ # :new
144
+ # :evaluated
145
+ # :initialized
146
+ # :children_evaluated
147
+ # :actioned
148
+ def document_state(state)
149
+ return 'unknown' if state.nil?
150
+ return 'loaded (partially)' if state == :evaluated # probably has unmet dependency
151
+ return 'loaded' if state == :children_evaluated
152
+
153
+ state.to_s
154
+ end
155
+
137
156
  def lpad(size, value)
138
157
  value.to_s.rjust(size)
139
158
  end
@@ -62,6 +62,7 @@ module KManager
62
62
  attribute :resource_relative_path , Types::Strict::String.optional.default(nil)
63
63
  attribute :resource_exist? , Types::Strict::Bool
64
64
  attribute :document_id , Types::Strict::Integer
65
+ attribute :document_state , Types::Strict::String | Types::Strict::Symbol
65
66
  attribute :document_data , Types::Strict::Any.optional.default # Hash.optional.default(nil) | Types::Strict::Array.of(Types::Strict::Hash).optional.default(nil)
66
67
  attribute :document_key , Types::Strict::String | Types::Strict::Symbol
67
68
  attribute :document_namespace , Types::Strict::String | Types::Strict::Symbol |
@@ -35,6 +35,7 @@ module KManager
35
35
  **area.attribute_values('area_'),
36
36
  **resource.attribute_values('resource_'),
37
37
  document_id: document.object_id,
38
+ document_state: document.block_state,
38
39
  document_data: document.data,
39
40
  document_key: document.key,
40
41
  document_namespace: document.namespace,
@@ -25,7 +25,7 @@ module KManager
25
25
  include KLog::Logging
26
26
  include KDoc::Guarded
27
27
 
28
- ACTIONS = %i[load_content register_document load_document].freeze
28
+ ACTIONS = %i[load_content register_document preload_document load_document].freeze
29
29
 
30
30
  class << self
31
31
  def valid_action?(action)
@@ -42,6 +42,8 @@ module KManager
42
42
  # - :content_loaded
43
43
  # - :documents_registering
44
44
  # - :documents_registered
45
+ # - :documents_preloading
46
+ # - :documents_preloaded
45
47
  # - :documents_loading
46
48
  # - :documents_loaded
47
49
  attr_reader :status
@@ -102,9 +104,9 @@ module KManager
102
104
  end
103
105
 
104
106
  # TODO: Is this really needed?
105
- def document
106
- @document ||= documents&.first
107
- end
107
+ # def document
108
+ # @document ||= documents&.first
109
+ # end
108
110
 
109
111
  def activated?
110
112
  # log.section_heading("Am I activated?")
@@ -120,7 +122,8 @@ module KManager
120
122
  # @param [Symbol] action what action is to be fired
121
123
  # - :load_content for loading text content
122
124
  # - :register_document for registering 1 or more documents (name and namespace) against the resource
123
- # - :load_document for parsing the content into a document
125
+ # - :preload_document for parsing the content into a document
126
+ # - :load_document for finalizing the document load with met dependencies and action execution if applicable
124
127
  # rubocop:disable Metrics/CyclomaticComplexity
125
128
  def fire_action(action)
126
129
  # TODO: Write test for valid
@@ -131,20 +134,25 @@ module KManager
131
134
  load_content_action if alive?
132
135
  when :register_document
133
136
  register_document_action if content_loaded?
137
+ when :preload_document
138
+ preload_document_action if documents_registered?
134
139
  when :load_document
135
- load_document_action if documents_registered?
140
+ load_document_action if documents_preloaded?
136
141
  else
137
142
  log.warn "Action: '#{action}' is invalid for status: '#{status}'"
138
143
  end
139
144
  end
140
145
  # rubocop:enable Metrics/CyclomaticComplexity
141
146
 
147
+ # I don't think this is needed, it is never really used
142
148
  def fire_next_action
143
149
  if alive?
144
150
  fire_action(:load_content)
145
151
  elsif content_loaded?
146
152
  fire_action(:register_document)
147
153
  elsif documents_registered?
154
+ fire_action(:preload_document)
155
+ elsif documents_preloaded?
148
156
  fire_action(:load_document)
149
157
  end
150
158
  end
@@ -162,13 +170,22 @@ module KManager
162
170
  end
163
171
 
164
172
  def register_document
165
- # log.warn 'you need to implement register_document'
166
173
  KManager::Resources::ResourceDocumentFactory.create_documents(self)
167
174
  end
168
175
 
176
+ # rubocop:disable Lint/RescueException
177
+ def preload_document
178
+ documents.each(&:execute_block)
179
+ rescue Exception => e
180
+ guard(e.message)
181
+ debug
182
+ log.exception(e, style: KManager.opts.exception_style)
183
+ # log.exception(e, style: :short)
184
+ end
185
+ # rubocop:enable Lint/RescueException
186
+
169
187
  # rubocop:disable Lint/RescueException
170
188
  def load_document
171
- # log.warn 'you need to implement register_document'
172
189
  documents.each do |document|
173
190
  document.execute_block(run_actions: activated?)
174
191
  end
@@ -240,6 +257,10 @@ module KManager
240
257
  @status == :documents_registered
241
258
  end
242
259
 
260
+ def documents_preloaded?
261
+ @status == :documents_preloaded
262
+ end
263
+
243
264
  def documents_loaded?
244
265
  @status == :documents_loaded
245
266
  end
@@ -318,14 +339,18 @@ module KManager
318
339
  def register_document_action
319
340
  @status = :documents_registering
320
341
  register_document
321
- # document_factory.create_documents
322
342
  @status = :documents_registered
323
343
  end
324
344
 
345
+ def preload_document_action
346
+ @status = :documents_preloading
347
+ preload_document
348
+ @status = :documents_preloaded
349
+ end
350
+
325
351
  def load_document_action
326
352
  @status = :documents_loading
327
353
  load_document
328
- # document_factory.parse_content
329
354
  @status = :documents_loaded
330
355
  end
331
356
  end
@@ -93,8 +93,13 @@ module KManager
93
93
  replace_resource = resource.recreate(resource)
94
94
  replace_resource.fire_action(:load_content)
95
95
  replace_resource.fire_action(:register_document)
96
+ replace_resource.fire_action(:preload_document)
96
97
  replace_resource.fire_action(:load_document)
97
98
  resource_set.replace(replace_resource)
99
+
100
+ # This is a bit of a hack, but it works for now
101
+ # TODO: I don't think is actually working.
102
+ attach_dependencies
98
103
  end
99
104
 
100
105
  def delete_resource(resource_uri)
@@ -146,6 +151,7 @@ module KManager
146
151
 
147
152
  load_content if actions.include?(:load_content)
148
153
  register_documents if actions.include?(:register_document)
154
+ preload_documents if actions.include?(:preload_document)
149
155
  load_documents if actions.include?(:load_document)
150
156
  end
151
157
 
@@ -167,18 +173,45 @@ module KManager
167
173
  end
168
174
  end
169
175
 
176
+ def preload_documents
177
+ # first pass will attempt to load every document, if a document has dependencies
178
+ # it will be loaded in a second pass after dependencies are available
179
+ resources.each do |resource|
180
+ resource.fire_action(:preload_document)
181
+ end
182
+
183
+ attach_dependencies
184
+ end
185
+
170
186
  def load_documents
187
+ # second pass will finalize any documents that were partially load due to dependencies
171
188
  resources.each do |resource|
172
189
  resource.fire_action(:load_document)
173
190
  end
174
191
  end
175
192
 
193
+ def find_document(tag)
194
+ resources.flat_map(&:documents).find { |d| d.tag == tag }
195
+ end
196
+
176
197
  def debug
177
198
  resources.each(&:debug)
199
+ nil
178
200
  end
179
201
 
180
202
  private
181
203
 
204
+ def attach_dependencies
205
+ documents_with_unmet_dependencies = resources.flat_map(&:documents).reject(&:dependencies_met?)
206
+
207
+ documents_with_unmet_dependencies.each do |document|
208
+ document.depend_on_tags.each do |tag|
209
+ dependant_document = find_document(tag)
210
+ document.resolve_dependency(dependant_document) if dependant_document
211
+ end
212
+ end
213
+ end
214
+
182
215
  def parse_uri(uri)
183
216
  return uri if uri.is_a?(URI)
184
217
  return URI.parse(uri) if uri =~ URI::ABS_URI # https://stackoverflow.com/questions/1805761/how-to-check-if-a-url-is-valid
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KManager
4
- VERSION = '0.0.30'
4
+ VERSION = '0.0.32'
5
5
  end
data/lib/k_manager.rb CHANGED
@@ -11,6 +11,7 @@ require 'k_director'
11
11
  require 'k_fileset'
12
12
  require 'k_builder'
13
13
  require 'k_ext/github'
14
+ require 'drawio_dsl'
14
15
 
15
16
  # IS THIS NEEDED? this was used for infer_key
16
17
  require 'handlebars/helpers/string_formatting/dasherize'
@@ -29,9 +30,6 @@ require 'k_manager/resources/mem_resource'
29
30
  require 'k_manager/resources/resource_document_factory'
30
31
  require 'k_manager/resources/resource_factory'
31
32
  require 'k_manager/resources/resource_manager'
32
- require 'k_manager/document_import/build_tag'
33
- require 'k_manager/document_import/importer'
34
- require 'k_manager/document_import/extension'
35
33
  require 'k_manager/document_factory'
36
34
  require 'k_manager/manager'
37
35
  require 'k_manager/area'
@@ -104,10 +102,13 @@ module KManager
104
102
  def_delegators :manager,
105
103
  :opts,
106
104
  :areas,
105
+ :area_resources,
106
+ :area_documents,
107
107
  :add_area,
108
108
  :find_document,
109
109
  :fire_actions,
110
110
  :resource_changed,
111
+ :boot,
111
112
  :reboot,
112
113
  :debug
113
114
 
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.30
4
+ version: 0.0.32
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-13 00:00:00.000000000 Z
11
+ date: 2022-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: drawio_dsl
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.1'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: dry-struct
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -159,6 +173,13 @@ executables:
159
173
  extensions: []
160
174
  extra_rdoc_files: []
161
175
  files:
176
+ - ".builders/_.rb"
177
+ - ".builders/boot.rb"
178
+ - ".builders/generators/01-bootstrap.rb"
179
+ - ".builders/generators/02-draw-chart.rb"
180
+ - ".builders/graph/test.drawio"
181
+ - ".builders/graph/xmen.drawio"
182
+ - ".builders/graph/xmen.txt"
162
183
  - ".github/workflows/main.yml"
163
184
  - ".gitignore"
164
185
  - ".rspec"
@@ -178,6 +199,7 @@ files:
178
199
  - bin/khotfix
179
200
  - bin/setup
180
201
  - docs/flow.drawio
202
+ - docs/shapes
181
203
  - exe/k_manager
182
204
  - hooks/pre-commit
183
205
  - hooks/update-version
@@ -191,9 +213,6 @@ files:
191
213
  - lib/k_manager/cli/version.rb
192
214
  - lib/k_manager/cli/watch.rb
193
215
  - lib/k_manager/document_factory.rb
194
- - lib/k_manager/document_import/build_tag.rb
195
- - lib/k_manager/document_import/extension.rb
196
- - lib/k_manager/document_import/importer.rb
197
216
  - lib/k_manager/manager.rb
198
217
  - lib/k_manager/overview/dashboard.rb
199
218
  - lib/k_manager/overview/dump_json.rb
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module KManager
4
- # Allow existing documents from KDoc and other sources to be imported using the resource manager
5
- module DocumentImport
6
- class BuildTag
7
- include KDoc::Taggable
8
-
9
- def initialize(key:, type: :container, namespace: nil)
10
- opts = {
11
- key: key,
12
- type: type,
13
- namespace: namespace
14
- }
15
-
16
- initialize_tag(opts)
17
- end
18
- end
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module KManager
4
- # Alow existing documents from KDoc and other sources to be imported using the resource manager
5
- module DocumentImport
6
- module Extension
7
- include KLog::Logging
8
-
9
- def import(tag)
10
- # KManager.find_document(tag)
11
- end
12
- end
13
- end
14
- end
15
-
16
- KDoc::Action.include(KManager::DocumentImport::Extension)
17
- KDoc::Model.include(KManager::DocumentImport::Extension)
18
- KDoc::CsvDoc.include(KManager::DocumentImport::Extension)
19
- KDoc::JsonDoc.include(KManager::DocumentImport::Extension)
20
- KDoc::YamlDoc.include(KManager::DocumentImport::Extension)
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module KManager
4
- # Allow existing documents from KDoc and other sources to be imported using the resource manager
5
- module DocumentImport
6
- # Find a document by tag for importing
7
- class Importer
8
- def import(tag, area: nil)
9
- KManager.find_document(tag, area: area)
10
- end
11
- end
12
- end
13
- end