k_domain 0.0.11 → 0.0.14
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/Rakefile +3 -1
- data/k_domain.gemspec +1 -0
- data/lib/k_domain/domain_model/load.rb +1 -1
- data/lib/k_domain/domain_model/transform.rb +5 -3
- data/lib/k_domain/domain_model/transform_steps/step.rb +9 -9
- data/lib/k_domain/domain_model/transform_steps/step1_attach_db_schema.rb +1 -1
- data/lib/k_domain/domain_model/transform_steps/step5_attach_dictionary.rb +3 -1
- data/lib/k_domain/domain_model/transform_steps/step8_locate_rails_models.rb +4 -2
- data/lib/k_domain/raw_db_schema/transform.rb +4 -5
- data/lib/k_domain/schemas/_.rb +15 -0
- data/lib/k_domain/schemas/database/_.rb +0 -7
- data/lib/k_domain/schemas/database/schema.rb +15 -2
- data/lib/k_domain/schemas/database/table.rb +16 -5
- data/lib/k_domain/schemas/dictionary.rb +19 -0
- data/lib/k_domain/schemas/domain/_.rb +0 -3
- data/lib/k_domain/schemas/domain/domain.rb +0 -1
- data/lib/k_domain/schemas/{domain/schema.rb → domain_model.rb} +5 -4
- data/lib/k_domain/schemas/{domain/investigate.rb → investigate.rb} +1 -1
- data/lib/k_domain/schemas/rails_resource.rb +16 -0
- data/lib/k_domain/version.rb +1 -1
- data/lib/k_domain.rb +10 -3
- data/{lib/k_domain/raw_db_schema/template.rb → templates/load_schema.rb} +4 -4
- metadata +8 -9
- data/lib/k_domain/schemas/database/column.rb +0 -16
- data/lib/k_domain/schemas/database/database.rb +0 -11
- data/lib/k_domain/schemas/database/unique_key.rb +0 -14
- data/lib/k_domain/schemas/domain/dictionary.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c236bd2b714a21b40f5727765bc2b9c049f0c265e7c592e5864a6a6e34330b37
|
4
|
+
data.tar.gz: 8ecf79ec6e1805ad6660218ac6aa6931ef67a48b3ca56dd339c7a6a0f6c50886
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b3a6c9c9af39c37fdeba462a209a0bd395a72c1887505c0852f1f37a58406c929cc080c63bb9ed5b4de937be51d722e0511a6194d7de389840cb5ca831e7135
|
7
|
+
data.tar.gz: f71d09378bf35ec9146692bd137b02176095ba934fbba711c6204896541af27365aeeeb67997d89d43cea7498f2d7361322cba566dd0c31ed1674fb190656968
|
data/Rakefile
CHANGED
data/k_domain.gemspec
CHANGED
@@ -13,7 +13,7 @@ module KDomain
|
|
13
13
|
attr_reader :target_file
|
14
14
|
attr_reader :erd_path
|
15
15
|
|
16
|
-
def initialize(db_schema, target_file, target_step_file, erd_path)
|
16
|
+
def initialize(db_schema: , target_file: , target_step_file: , erd_path:)
|
17
17
|
@db_schema = db_schema
|
18
18
|
@target_step_file = target_step_file
|
19
19
|
@target_file = target_file
|
@@ -82,16 +82,18 @@ module KDomain
|
|
82
82
|
domain: {
|
83
83
|
models: [],
|
84
84
|
erd_files: [],
|
85
|
-
dictionary: []
|
86
85
|
},
|
87
86
|
rails: {
|
88
87
|
models: [],
|
89
88
|
controllers: [],
|
90
89
|
},
|
91
|
-
|
90
|
+
rails_resource: {
|
92
91
|
models: [],
|
93
92
|
controllers: [],
|
94
93
|
},
|
94
|
+
dictionary: {
|
95
|
+
items: []
|
96
|
+
},
|
95
97
|
database: {
|
96
98
|
tables: [],
|
97
99
|
indexes: [],
|
@@ -44,22 +44,22 @@ module KDomain
|
|
44
44
|
end
|
45
45
|
|
46
46
|
# Rails File Accessor/Helpers
|
47
|
-
def
|
48
|
-
guard('
|
47
|
+
def rails_resource
|
48
|
+
guard('rails_resource is missing') if domain_data[:rails_resource].nil?
|
49
49
|
|
50
|
-
domain_data[:
|
50
|
+
domain_data[:rails_resource]
|
51
51
|
end
|
52
52
|
|
53
|
-
def
|
54
|
-
|
53
|
+
def rails_resource_models
|
54
|
+
rails_resource[:models]
|
55
55
|
end
|
56
56
|
|
57
|
-
def
|
58
|
-
|
57
|
+
def rails_resource_models=(value)
|
58
|
+
rails_resource[:models] = value
|
59
59
|
end
|
60
60
|
|
61
|
-
def
|
62
|
-
|
61
|
+
def rails_resource_controllers
|
62
|
+
rails_resource[:controllers]
|
63
63
|
end
|
64
64
|
|
65
65
|
# Database Accessor/Helpers
|
@@ -13,7 +13,7 @@ module KDomain
|
|
13
13
|
guard('indexes are missing') if database[:indexes].nil?
|
14
14
|
guard('foreign keys are missing') if database[:foreign_keys].nil?
|
15
15
|
guard('rails version is missing') if database[:meta][:rails].nil?
|
16
|
-
guard('postgres extensions are missing') if database[:meta][:
|
16
|
+
guard('postgres extensions are missing') if database[:meta][:db_info][:extensions].nil?
|
17
17
|
guard('unique keys are missing') if database[:meta][:unique_keys].nil?
|
18
18
|
end
|
19
19
|
end
|
@@ -7,12 +7,14 @@ class Step8LocateRailsModels < KDomain::DomainModel::Step
|
|
7
7
|
def call
|
8
8
|
raise 'ERD path not supplied' if opts[:erd_path].nil?
|
9
9
|
|
10
|
-
self.
|
10
|
+
self.rails_resource_models = domain_models.map do |model|
|
11
|
+
locate_rails_model(model[:name], model[:table_name])
|
12
|
+
end
|
11
13
|
end
|
12
14
|
|
13
15
|
private
|
14
16
|
|
15
|
-
def locate_rails_model(
|
17
|
+
def locate_rails_model(model_name, table_name)
|
16
18
|
file_normal = File.join(opts[:erd_path], "#{model_name}.rb")
|
17
19
|
file_custom = File.join(opts[:erd_path], "#{table_name}.rb")
|
18
20
|
file_exist = true
|
@@ -16,7 +16,7 @@ module KDomain
|
|
16
16
|
|
17
17
|
def initialize(source_file)
|
18
18
|
@source_file = source_file
|
19
|
-
@template_file = '
|
19
|
+
@template_file = KDomain::Gem.resource('templates/load_schema.rb')
|
20
20
|
end
|
21
21
|
|
22
22
|
def call
|
@@ -24,7 +24,6 @@ module KDomain
|
|
24
24
|
# log.kv 'template_file', template_file
|
25
25
|
# log.kv 'source_file?', File.exist?(source_file)
|
26
26
|
# log.kv 'template_file?', File.exist?(template_file)
|
27
|
-
|
28
27
|
log.error "Template not found: #{template_file}" unless File.exist?(template_file)
|
29
28
|
|
30
29
|
content = File.read(source_file)
|
@@ -34,9 +33,9 @@ module KDomain
|
|
34
33
|
lines = content.lines.map { |line| " #{line}" }.join
|
35
34
|
|
36
35
|
@schema_loader = File
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
.read(template_file)
|
37
|
+
.gsub('{{source_file}}', source_file)
|
38
|
+
.gsub('{{rails_schema}}', lines)
|
40
39
|
end
|
41
40
|
|
42
41
|
# rename to target_ruby
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# log.warn 'models->domain' if AppDebug.require?
|
4
|
+
|
5
|
+
module Types
|
6
|
+
include Dry.Types()
|
7
|
+
end
|
8
|
+
|
9
|
+
require_relative 'rails_resource'
|
10
|
+
require_relative 'investigate'
|
11
|
+
require_relative 'database/_'
|
12
|
+
require_relative 'dictionary'
|
13
|
+
require_relative 'domain/_'
|
14
|
+
|
15
|
+
require_relative './domain_model'
|
@@ -1,14 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module Types
|
4
|
-
include Dry.Types()
|
5
|
-
end
|
6
|
-
|
7
3
|
# The require order is important due to dependencies
|
8
|
-
require_relative './column'
|
9
|
-
require_relative './database'
|
10
4
|
require_relative './index'
|
11
5
|
require_relative './table'
|
12
6
|
require_relative './foreign_key'
|
13
|
-
require_relative './unique_key'
|
14
7
|
require_relative './schema'
|
@@ -3,10 +3,23 @@
|
|
3
3
|
module KDomain
|
4
4
|
module Database
|
5
5
|
class Schema < Dry::Struct
|
6
|
+
class DbInfo < Dry::Struct
|
7
|
+
attribute :type , Types::Strict::String
|
8
|
+
attribute :version , Types::Nominal::Any.optional.default(nil)
|
9
|
+
attribute :extensions , Types::Strict::Array
|
10
|
+
end
|
11
|
+
|
12
|
+
class UniqueKey < Dry::Struct
|
13
|
+
attribute :type , Types::Strict::String
|
14
|
+
attribute :category , Types::Strict::String.optional
|
15
|
+
attribute :key , Types::Strict::String
|
16
|
+
attribute :keys , Types::Strict::Array
|
17
|
+
end
|
18
|
+
|
6
19
|
class Meta < Dry::Struct
|
7
20
|
attribute :rails , Types::Strict::Integer
|
8
|
-
attribute :
|
9
|
-
attribute :unique_keys , Types::Strict::Array.of(KDomain::Database::UniqueKey)
|
21
|
+
attribute :db_info , KDomain::Database::Schema::DbInfo
|
22
|
+
attribute :unique_keys , Types::Strict::Array.of(KDomain::Database::Schema::UniqueKey)
|
10
23
|
end
|
11
24
|
|
12
25
|
attribute :tables , Types::Strict::Array.of(KDomain::Database::Table)
|
@@ -3,19 +3,30 @@
|
|
3
3
|
module KDomain
|
4
4
|
module Database
|
5
5
|
class Table < Dry::Struct
|
6
|
-
class
|
6
|
+
class RailsSchema < Dry::Struct
|
7
7
|
attribute :primary_key , Types::Nominal::Any.optional.default(nil)
|
8
8
|
attribute :id , Types::Nominal::Any.optional.default(nil)
|
9
9
|
attribute :force , Types::Nominal::Any.optional.default(nil)
|
10
10
|
end
|
11
11
|
|
12
|
+
class Column < Dry::Struct
|
13
|
+
attribute :name , Types::Strict::String
|
14
|
+
attribute :type , Types::Strict::String
|
15
|
+
attribute :precision? , Types::Strict::Integer.optional.default(nil)
|
16
|
+
attribute :scale? , Types::Strict::Integer.optional.default(nil)
|
17
|
+
attribute :default? , Types::Nominal::Any.optional.default(nil)
|
18
|
+
attribute :array? , Types::Strict::Bool.optional.default(nil)
|
19
|
+
attribute :null? , Types::Strict::Bool.optional.default(nil)
|
20
|
+
attribute :limit? , Types::Strict::Integer.optional.default(nil)
|
21
|
+
end
|
22
|
+
|
12
23
|
attribute :name , Types::Strict::String
|
13
24
|
attribute :primary_key , Types::Strict::String.optional.default(nil)
|
14
25
|
attribute :primary_key_type , Types::Strict::String.optional.default(nil)
|
15
|
-
attribute :id? , Types::Nominal::Any.optional.default(nil)
|
16
|
-
attribute :columns , Types::Strict::Array.of(KDomain::Database::Column)
|
17
|
-
attribute :indexes , Types::Strict::Array.of(KDomain::Database::Index)
|
18
|
-
attribute :rails_schema , KDomain::Database::Table::
|
26
|
+
attribute :id? , Types::Nominal::Any.optional.default(nil)
|
27
|
+
attribute :columns , Types::Strict::Array.of(KDomain::Database::Table::Column)
|
28
|
+
attribute :indexes , Types::Strict::Array.of(KDomain::Database::Index) # May want to have a Table::Index, but for now this is a shared scheam
|
29
|
+
attribute :rails_schema , KDomain::Database::Table::RailsSchema
|
19
30
|
end
|
20
31
|
end
|
21
32
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Domain class holds a dictionary entry
|
4
|
+
module KDomain
|
5
|
+
module Schemas
|
6
|
+
class Dictionary < Dry::Struct
|
7
|
+
attribute :items , Types::Strict::Array do
|
8
|
+
attribute :name , Types::Strict::String
|
9
|
+
attribute :type , Types::Strict::String
|
10
|
+
attribute :label , Types::Strict::String
|
11
|
+
attribute :segment , Types::Strict::String
|
12
|
+
attribute :models , Types::Strict::Array
|
13
|
+
attribute :model_count , Types::Strict::Integer
|
14
|
+
attribute :types , Types::Strict::Array
|
15
|
+
attribute :type_count , Types::Strict::Integer
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -2,13 +2,10 @@
|
|
2
2
|
|
3
3
|
# log.warn 'models->domain' if AppDebug.require?
|
4
4
|
|
5
|
-
require_relative './dictionary'
|
6
|
-
require_relative './investigate'
|
7
5
|
require_relative './models/column'
|
8
6
|
require_relative './models/model'
|
9
7
|
require_relative './erd_file'
|
10
8
|
require_relative './domain'
|
11
|
-
require_relative './schema'
|
12
9
|
|
13
10
|
module KDomain
|
14
11
|
module DomainModel
|
@@ -6,7 +6,6 @@ module KDomain
|
|
6
6
|
class Domain < Dry::Struct
|
7
7
|
attribute :models , Types::Strict::Array.of(KDomain::DomainModel::Model)
|
8
8
|
attribute :erd_files , Types::Strict::Array.of(KDomain::DomainModel::ErdFile)
|
9
|
-
attribute :dictionary , Types::Strict::Array.of(KDomain::DomainModel::Dictionary)
|
10
9
|
end
|
11
10
|
end
|
12
11
|
end
|
@@ -2,12 +2,13 @@
|
|
2
2
|
|
3
3
|
# DomainModel holds the entire domain model including database and ancillary information
|
4
4
|
module KDomain
|
5
|
-
module
|
6
|
-
class
|
5
|
+
module Schemas
|
6
|
+
class DomainModel < Dry::Struct
|
7
7
|
attribute :domain , KDomain::DomainModel::Domain
|
8
8
|
attribute :database , KDomain::Database::Schema
|
9
|
-
|
10
|
-
attribute :
|
9
|
+
attribute :dictionary , KDomain::Schemas::Dictionary
|
10
|
+
attribute :rails_resource , KDomain::Schemas::RailsResource
|
11
|
+
attribute :investigate , KDomain::Schemas::Investigate
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Domain class holds a dictionary entry
|
4
|
+
module KDomain
|
5
|
+
module Schemas
|
6
|
+
class RailsResource < Dry::Struct
|
7
|
+
attribute :models , Types::Strict::Array do
|
8
|
+
attribute :model_name , Types::Strict::String
|
9
|
+
attribute :table_name , Types::Strict::String
|
10
|
+
attribute :file , Types::Strict::String
|
11
|
+
attribute :exist , Types::Strict::Bool
|
12
|
+
attribute :state , Types::Strict::String
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/k_domain/version.rb
CHANGED
data/lib/k_domain.rb
CHANGED
@@ -5,9 +5,7 @@ require 'dry-struct'
|
|
5
5
|
require 'k_log'
|
6
6
|
require 'peeky'
|
7
7
|
require 'k_domain/version'
|
8
|
-
require 'k_domain/schemas/
|
9
|
-
require 'k_domain/schemas/domain/_'
|
10
|
-
|
8
|
+
require 'k_domain/schemas/_'
|
11
9
|
require 'k_domain/raw_db_schema/transform'
|
12
10
|
require 'k_domain/raw_db_schema/load'
|
13
11
|
require 'k_domain/domain_model/transform'
|
@@ -23,6 +21,15 @@ module KDomain
|
|
23
21
|
# raise KDomain::Error, 'Sample message'
|
24
22
|
class Error < StandardError; end
|
25
23
|
|
24
|
+
module Gem
|
25
|
+
def self.root
|
26
|
+
File.expand_path('..', File.dirname(__FILE__))
|
27
|
+
end
|
28
|
+
def self.resource(resource_path)
|
29
|
+
File.join(root, resource_path)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
26
33
|
# Your code goes here...
|
27
34
|
end
|
28
35
|
|
@@ -11,7 +11,7 @@ class LoadSchema
|
|
11
11
|
indexes: [],
|
12
12
|
meta: {
|
13
13
|
rails: @rails_version,
|
14
|
-
|
14
|
+
db_info: {
|
15
15
|
type: 'postgres',
|
16
16
|
version: nil, # TODO
|
17
17
|
extensions: []
|
@@ -50,14 +50,14 @@ class LoadSchema
|
|
50
50
|
sort
|
51
51
|
# code to time
|
52
52
|
|
53
|
-
# log.kv 'extensions', schema[:
|
53
|
+
# log.kv 'extensions', schema[:db_info][:extensions].length
|
54
54
|
# log.kv 'tables', schema[:tables].length
|
55
55
|
# log.kv 'indexes', schema[:indexes].length
|
56
56
|
# # a low foreign_keys count is indicative of not using SQL referential integrity
|
57
57
|
# log.kv 'foreign_keys', schema[:foreign_keys].length
|
58
58
|
# log.kv 'Time Taken', (finish - start)
|
59
59
|
|
60
|
-
# puts schema[:
|
60
|
+
# puts schema[:db_info][:extensions]
|
61
61
|
# print_unique_keys(type: :foreign_keys, title: 'unique options for foreign_keys')
|
62
62
|
# print_unique_keys(type: :columns, title: 'unique options for columns')
|
63
63
|
# print_unique_keys(type: :fields, category: :integer , title: 'unique options for column - integer')
|
@@ -74,7 +74,7 @@ class LoadSchema
|
|
74
74
|
|
75
75
|
def enable_extension(name)
|
76
76
|
# puts "enable_extension(#{name})"
|
77
|
-
schema[:meta][:
|
77
|
+
schema[:meta][:db_info][:extensions] << name
|
78
78
|
end
|
79
79
|
|
80
80
|
def create_table(name, **opts)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k_domain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -106,21 +106,17 @@ files:
|
|
106
106
|
- lib/k_domain/domain_model/transform_steps/step5_attach_dictionary.rb
|
107
107
|
- lib/k_domain/domain_model/transform_steps/step8_locate_rails_models.rb
|
108
108
|
- lib/k_domain/raw_db_schema/load.rb
|
109
|
-
- lib/k_domain/raw_db_schema/template.rb
|
110
109
|
- lib/k_domain/raw_db_schema/transform.rb
|
110
|
+
- lib/k_domain/schemas/_.rb
|
111
111
|
- lib/k_domain/schemas/database/_.rb
|
112
|
-
- lib/k_domain/schemas/database/column.rb
|
113
|
-
- lib/k_domain/schemas/database/database.rb
|
114
112
|
- lib/k_domain/schemas/database/foreign_key.rb
|
115
113
|
- lib/k_domain/schemas/database/index.rb
|
116
114
|
- lib/k_domain/schemas/database/schema.rb
|
117
115
|
- lib/k_domain/schemas/database/table.rb
|
118
|
-
- lib/k_domain/schemas/
|
116
|
+
- lib/k_domain/schemas/dictionary.rb
|
119
117
|
- lib/k_domain/schemas/domain/_.rb
|
120
|
-
- lib/k_domain/schemas/domain/dictionary.rb
|
121
118
|
- lib/k_domain/schemas/domain/domain.rb
|
122
119
|
- lib/k_domain/schemas/domain/erd_file.rb
|
123
|
-
- lib/k_domain/schemas/domain/investigate.rb
|
124
120
|
- lib/k_domain/schemas/domain/models/column.rb
|
125
121
|
- lib/k_domain/schemas/domain/models/model.rb
|
126
122
|
- lib/k_domain/schemas/domain/old/belongs_to.rb
|
@@ -139,8 +135,11 @@ files:
|
|
139
135
|
- lib/k_domain/schemas/domain/old/statistics.rb
|
140
136
|
- lib/k_domain/schemas/domain/old/validate.rb
|
141
137
|
- lib/k_domain/schemas/domain/old/validates.rb
|
142
|
-
- lib/k_domain/schemas/
|
138
|
+
- lib/k_domain/schemas/domain_model.rb
|
139
|
+
- lib/k_domain/schemas/investigate.rb
|
140
|
+
- lib/k_domain/schemas/rails_resource.rb
|
143
141
|
- lib/k_domain/version.rb
|
142
|
+
- templates/load_schema.rb
|
144
143
|
homepage: http://appydave.com/gems/k-domain
|
145
144
|
licenses:
|
146
145
|
- MIT
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module KDomain
|
4
|
-
module Database
|
5
|
-
class Column < Dry::Struct
|
6
|
-
attribute :name , Types::Strict::String
|
7
|
-
attribute :type , Types::Strict::String
|
8
|
-
attribute :precision? , Types::Strict::Integer.optional.default(nil)
|
9
|
-
attribute :scale? , Types::Strict::Integer.optional.default(nil)
|
10
|
-
attribute :default? , Types::Nominal::Any.optional.default(nil) # Types::Strict::Bool.optional.default(nil) | Types::Strict::Integer.optional.default(nil)
|
11
|
-
attribute :array? , Types::Strict::Bool.optional.default(nil)
|
12
|
-
attribute :null? , Types::Strict::Bool.optional.default(nil)
|
13
|
-
attribute :limit? , Types::Strict::Integer.optional.default(nil)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module KDomain
|
4
|
-
module Database
|
5
|
-
class Database < Dry::Struct
|
6
|
-
attribute :type , Types::Strict::String
|
7
|
-
attribute :version , Types::Nominal::Any.optional.default(nil)
|
8
|
-
attribute :extensions , Types::Strict::Array
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module KDomain
|
4
|
-
module Database
|
5
|
-
# Keep a track of unique keys that appear in the data structures
|
6
|
-
# so that we can track what new attributes to add to the models
|
7
|
-
class UniqueKey < Dry::Struct
|
8
|
-
attribute :type , Types::Strict::String
|
9
|
-
attribute :category , Types::Strict::String.optional
|
10
|
-
attribute :key , Types::Strict::String
|
11
|
-
attribute :keys , Types::Strict::Array
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Domain class holds a dictionary entry
|
4
|
-
module KDomain
|
5
|
-
module DomainModel
|
6
|
-
class Dictionary < Dry::Struct
|
7
|
-
attribute :name , Types::Strict::String
|
8
|
-
attribute :type , Types::Strict::String
|
9
|
-
attribute :label , Types::Strict::String
|
10
|
-
attribute :segment , Types::Strict::String
|
11
|
-
attribute :models , Types::Strict::Array
|
12
|
-
attribute :model_count , Types::Strict::Integer
|
13
|
-
attribute :types , Types::Strict::Array
|
14
|
-
attribute :type_count , Types::Strict::Integer
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|