drawio_dsl 0.4.0 → 0.4.1

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: 56780c6c8fa8c1ea29a29e07bf389cf257fd7a33faf52e955b3fe56133367063
4
- data.tar.gz: f583d40a64cea1177d7d52ab627dcbfa954cb3091dada0903947f69f5792d3b5
3
+ metadata.gz: 43e99df9f899e7c7ebeb6618d9b2018cad1a17abf786cf047d918c1eed513f77
4
+ data.tar.gz: 2b251a9fa966d5447cc8130b1a1b9a2ac90e7f229b5b1aa0d182a233179ec88e
5
5
  SHA512:
6
- metadata.gz: 92b5c4e8e2a8210c3e2213df96f1d35034689a3d2ff9132e17fc1fa30f68b89551cb395f725e0b1b5da3b506e62471e2e64def33683f8959f53a41a43e4f5805
7
- data.tar.gz: 112eb4f963aa4c295559f8d1e8ed0eaf0121bb768282924ca54059c3de4924d16a33b5a3d33dd9044378315840aafda7db34d228aa2064606eccf5d29776da52
6
+ metadata.gz: d0da48b1461fa48072af5674a689dd9beac83fee630cb2cd656c22a3495fdffd062ec3fffa80dfca57478a240557ac70c456c14adc87b31d6dd2d4930d77dc2e
7
+ data.tar.gz: 6376e89f6e55ff96b644cbdf23f26000facdad358791f9bfa66eeee4bc7193389cc75c6601c3f5a8cc7a51f24c5717f1985dbcdd86214efbb1cadf5eff991b1e
@@ -0,0 +1,82 @@
1
+ [
2
+ {
3
+ "type": "callout",
4
+ "x": 0,
5
+ "y": 0,
6
+ "w": 160,
7
+ "h": 160,
8
+ "style_modifiers": "double=1;shape=callout"
9
+ },
10
+ {
11
+ "type": "circle",
12
+ "x": 0,
13
+ "y": 0,
14
+ "w": 160,
15
+ "h": 160,
16
+ "style_modifiers": "double=1;ellipse"
17
+ },
18
+ {
19
+ "type": "cloud",
20
+ "x": 0,
21
+ "y": 0,
22
+ "w": 160,
23
+ "h": 160,
24
+ "style_modifiers": "double=1;shape=cloud"
25
+ },
26
+ {
27
+ "type": "diamond",
28
+ "x": 0,
29
+ "y": 0,
30
+ "w": 160,
31
+ "h": 160,
32
+ "style_modifiers": "double=1;rhombus"
33
+ },
34
+ {
35
+ "type": "ellipse",
36
+ "x": 0,
37
+ "y": 0,
38
+ "w": 200,
39
+ "h": 120,
40
+ "style_modifiers": "double=1;ellipse"
41
+ },
42
+ {
43
+ "type": "hexagon",
44
+ "x": 0,
45
+ "y": 0,
46
+ "w": 200,
47
+ "h": 120,
48
+ "style_modifiers": "double=1;shape=hexagon"
49
+ },
50
+ {
51
+ "type": "note",
52
+ "x": 0,
53
+ "y": 0,
54
+ "w": 160,
55
+ "h": 160,
56
+ "style_modifiers": "double=1;shape=note"
57
+ },
58
+ {
59
+ "type": "process",
60
+ "x": 0,
61
+ "y": 0,
62
+ "w": 200,
63
+ "h": 120,
64
+ "style_modifiers": "double=1;shape=process"
65
+ },
66
+ {
67
+ "type": "rectangle",
68
+ "x": 0,
69
+ "y": 0,
70
+ "w": 200,
71
+ "h": 120,
72
+ "style_modifiers": ""
73
+ },
74
+ {
75
+ "type": "square",
76
+ "x": 0,
77
+ "y": 0,
78
+ "w": 160,
79
+ "h": 160,
80
+ "style_modifiers": ""
81
+ }
82
+ ]
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'common_style'
4
+ require_relative 'default_palette'
5
+ require_relative 'diagram'
6
+ require_relative 'node'
7
+ require_relative 'page'
8
+
9
+ require_relative 'layouts/layout'
10
+ require_relative 'layouts/flex_layout'
11
+ require_relative 'layouts/grid_layout'
12
+
13
+ require_relative 'shapes/shape'
14
+ {{#each shapes}}
15
+ require_relative 'shapes/{{snake ./type}}'
16
+ {{/each}}
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe DrawioDsl::Schema::{{camle type}} do
4
+ include_context :node_dependencies
5
+
6
+ subject { instance }
7
+
8
+ let(:instance) { described_class.new(diagram, **args) }
9
+ let(:args) { { id: 1 } }
10
+ let(:default) { KConfig.configuration.drawio.shapes.{{snake type}} }
11
+
12
+ it_behaves_like :basic_shape_attributes
13
+ end
@@ -2,18 +2,28 @@ KManager.model :shapes, namespace: %i[domain] do
2
2
  # microapp = import(:handlebars_helpers, :microapp)
3
3
 
4
4
  table :shapes do
5
- fields :type, :x, :y, :w, :h, :style_modifiers
5
+ fields [:type, :x, :y, :w, :h, :style_modifiers]
6
6
 
7
7
  # row :shape , x: 0, y: 0, w: 20, h: 20, style_modifiers: ''
8
- row :square , x: 0, y: 0, w: 160, h: 160, style_modifiers: ''
9
- row :rectangle , x: 0, y: 0, w: 200, h: 120, style_modifiers: ''
8
+ row :callout , x: 0, y: 0, w: 160, h: 160, style_modifiers: 'double=1;shape=callout'
10
9
  row :circle , x: 0, y: 0, w: 160, h: 160, style_modifiers: 'double=1;ellipse'
11
- row :process , x: 0, y: 0, w: 200, h: 120, style_modifiers: 'double=1;shape=process'
12
- row :ellipse , x: 0, y: 0, w: 200, h: 120, style_modifiers: 'double=1;ellipse'
10
+ row :cloud , x: 0, y: 0, w: 160, h: 160, style_modifiers: 'double=1;shape=cloud'
13
11
  row :diamond , x: 0, y: 0, w: 160, h: 160, style_modifiers: 'double=1;rhombus'
12
+ row :ellipse , x: 0, y: 0, w: 200, h: 120, style_modifiers: 'double=1;ellipse'
14
13
  row :hexagon , x: 0, y: 0, w: 200, h: 120, style_modifiers: 'double=1;shape=hexagon'
15
- row :cloud , x: 0, y: 0, w: 160, h: 160, style_modifiers: 'double=1;shape=cloud'
16
14
  row :note , x: 0, y: 0, w: 160, h: 160, style_modifiers: 'double=1;shape=note'
17
- row :callout , x: 0, y: 0, w: 160, h: 160, style_modifiers: 'double=1;shape=callout'
15
+ row :process , x: 0, y: 0, w: 200, h: 120, style_modifiers: 'double=1;shape=process'
16
+ row :rectangle , x: 0, y: 0, w: 200, h: 120, style_modifiers: ''
17
+ row :square , 0, 0, 160, 160, ''
18
+
19
+ end
20
+
21
+ action do
22
+ data = self.raw_data
23
+ shapes = JSON.pretty_generate(data['shapes'])
24
+
25
+ k_builder
26
+ .cd(:data)
27
+ .add_file('shapes.json', content: shapes, on_exist: :write)
18
28
  end
19
29
  end
data/.builders/boot.rb CHANGED
@@ -45,11 +45,15 @@ KConfig.configure(CONFIG_KEY) do |config|
45
45
  base_folder = File.expand_path('../', builder_folder)
46
46
  global_template = File.expand_path('~/dev/kgems/k_templates/templates')
47
47
 
48
+ # Templates
48
49
  config.template_folders.add(:global_template , global_template)
49
50
  config.template_folders.add(:template , File.expand_path('.templates', Dir.pwd))
50
51
 
52
+ # Target Folders
51
53
  config.target_folders.add(:app , base_folder)
54
+ config.target_folders.add(:lib , :app, 'lib', 'drawio_dsl')
52
55
  config.target_folders.add(:builder , builder_folder)
56
+ config.target_folders.add(:data , :builder, '.data')
53
57
  end
54
58
 
55
59
  KConfig.configuration(CONFIG_KEY).debug
@@ -0,0 +1,35 @@
1
+ KManager.action :requires do
2
+ # NOT yet working on file change
3
+ # depend_on(:domain_shapes_kdoc)
4
+
5
+ # init do
6
+ # # context.shapes = import_data(:domain_shapes_kdoc, as: :ostruct)
7
+ # end
8
+
9
+ action do
10
+ shapes_file = k_builder.target_folders.get_filename(:data, 'shapes.json')
11
+ shapes = JSON.parse(File.read(shapes_file))
12
+ puts 'david'
13
+ KDirector::Dsls::BasicDsl
14
+ .init(k_builder,
15
+ on_exist: :write, # %i[skip write compare]
16
+ on_action: :execute # %i[queue execute]
17
+ )
18
+ .blueprint(
19
+ active: true,
20
+ name: :bin_hook,
21
+ description: 'initialize repository',
22
+ on_exist: :write) do
23
+
24
+ cd(:lib)
25
+
26
+ add('schema/_.rb.txt', template_file: 'schema_require.rb', shapes: shapes)
27
+ end
28
+
29
+
30
+ # # director.play_actions
31
+ # director.builder.debug
32
+ # director.debug
33
+ # director.k_builder.debug
34
+ end
35
+ end
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [0.4.0](https://github.com/klueless-io/drawio_dsl/compare/v0.3.0...v0.4.0) (2022-03-05)
2
+
3
+
4
+ ### Features
5
+
6
+ * big refactor, plus 98% test coverage ([0d1075c](https://github.com/klueless-io/drawio_dsl/commit/0d1075c177ff1441246950aaa7306ef774ba6df4))
7
+
1
8
  # [0.3.0](https://github.com/klueless-io/drawio_dsl/compare/v0.2.0...v0.3.0) (2022-03-04)
2
9
 
3
10
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DrawioDsl
4
- VERSION = '0.4.0'
4
+ VERSION = '0.4.1'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "drawio_dsl",
9
- "version": "0.4.0",
9
+ "version": "0.4.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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "DrawIO DSL can build DrawIO diagrams using a Domain Specific Language",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drawio_dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.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-03-05 00:00:00.000000000 Z
11
+ date: 2022-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: k_config
@@ -73,17 +73,20 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - ".builders/.templates/command.rb"
76
+ - ".builders/.data/shapes.json"
77
+ - ".builders/.templates/basic/schema_require.rb"
77
78
  - ".builders/.templates/schema_shape.rb"
79
+ - ".builders/.templates/schema_shape_spec.rb"
78
80
  - ".builders/_.rb"
79
81
  - ".builders/blueprint/shapes.rb"
80
82
  - ".builders/boot.rb"
81
83
  - ".builders/generators/01-bootstrap.rb"
82
- - ".builders/generators/10-page-margin.rb"
83
- - ".builders/generators/15-grid-direction.rb"
84
- - ".builders/generators/16-grid-alignment.rb"
85
- - ".builders/generators/20-styles.rb"
86
- - ".builders/generators/25-themes.rb"
84
+ - ".builders/generators/90-requires.rb"
85
+ - ".builders/generators/sample_diagrams/10-page-margin.rb"
86
+ - ".builders/generators/sample_diagrams/15-grid-direction.rb"
87
+ - ".builders/generators/sample_diagrams/16-grid-alignment.rb"
88
+ - ".builders/generators/sample_diagrams/20-styles.rb"
89
+ - ".builders/generators/sample_diagrams/25-themes.rb"
87
90
  - ".releaserc.json"
88
91
  - ".rspec"
89
92
  - ".rubocop.yml"
@@ -1,8 +0,0 @@
1
- KManager.model :{{command.name}}, namespace: %i[blueprint command] do
2
- # microapp = import(:handlebars_helpers, :microapp)
3
-
4
- settings do
5
- name :{{command.name}}
6
- description "{{command.description}}"
7
- end
8
- end