k_domain 0.0.26 → 0.0.29

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: 86f877b2fd5644c7ebd211c662cb4cd1ff63213dcc3cc588d3485f698a2bc7b9
4
- data.tar.gz: 9999ee5fa153fa7c1833cd21a0a5a145cbee4a97cd11284c1bb4440157ae6d0a
3
+ metadata.gz: e4d9da64cb89b7d2ee8ddd67e025ebcb34d617f0631b243368204c2cf904ec7b
4
+ data.tar.gz: 8168edbaf51175596d36d36a031e5f3a97ffc7c3bb13c1586fb8a6cf52646673
5
5
  SHA512:
6
- metadata.gz: 013e1f7524e395b9766831786cd1f4052eb6000fd35105c58bfb51869f9d1b93151f3fbc3e8fe349f59dd6819daf7d27e22a05ae5f95fba6826bf61af06eb235
7
- data.tar.gz: c56d291ba618e70863e334bca9c1e817da700d6d0769e92ac5fb7d267b1f02068f6d4275e423264147066389d45dca831d3b3878eef45662d0f4ef8457d99e20
6
+ metadata.gz: cd639a6ee4f496b05a6b0772b6782daa25866ad5f97321813c58e09c0b98a6f214c7cb88444e5d1e48d46f0566e352c6f48a44693d7ba742117bc8661df982a7
7
+ data.tar.gz: e733532923f3ae06191d6a037e11a9cf5e8dcb5939b08c9fe5f128e82fc75d6636e2727961b726e5761fd26db304fe5c6cef4082175d8539cbd4835828456a2d
@@ -25,7 +25,9 @@ jobs:
25
25
  run: |
26
26
  gem install bundler -v 2.2.5
27
27
  bundle install
28
- - name: Run tests
29
- run: bundle exec rspec
30
28
  - name: Run rubocop
31
- run: bundle exec rubocop
29
+ run: |
30
+ bundle exec rubocop -v
31
+ bundle exec rubocop
32
+ - name: Run tests
33
+ run: bundle exec rspec --tag ~skip_on_gha
data/.gitignore CHANGED
@@ -31,6 +31,7 @@ k_domain.yml
31
31
  *.o
32
32
  *.a
33
33
  mkmf.log
34
+ .vscode
34
35
 
35
36
  # Ruby Version
36
37
  .ruby-version
data/.rubocop.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # require: rubocop-rake
2
2
  AllCops:
3
- TargetRubyVersion: 2.5
3
+ TargetRubyVersion: 2.7
4
4
  DisplayCopNames: true
5
5
  ExtraDetails: true
6
6
  NewCops: enable
@@ -10,6 +10,7 @@ AllCops:
10
10
  - "templates/**/*"
11
11
  - "lib/k_domain/schemas/domain/old/**/*"
12
12
  - "spec/k_domain/ruby_loader/**/*"
13
+ - "hooks/**/*"
13
14
 
14
15
  Metrics/PerceivedComplexity:
15
16
  Exclude:
@@ -68,8 +69,6 @@ Metrics/MethodLength:
68
69
 
69
70
  Layout/LineLength:
70
71
  Max: 200
71
- # Ignores annotate output
72
- IgnoredPatterns: ['\A# \*\*']
73
72
  IgnoreCopDirectives: true
74
73
  Exclude:
75
74
  - "lib/k_domain/domain_model/transform_steps/*.rb"
@@ -116,6 +115,12 @@ Style/FormatStringToken:
116
115
  Style/Documentation:
117
116
  Enabled: false
118
117
 
118
+ Style/OpenStructUse:
119
+ Enabled: false
120
+
119
121
  Layout/SpaceBeforeComma:
120
122
  Enabled: false
123
+
124
+ Gemspec/RequireMFA:
125
+ Enabled: false
121
126
  # My Preferences - End
data/Gemfile CHANGED
@@ -16,7 +16,7 @@ group :development, :test do
16
16
  gem 'guard-bundler'
17
17
  gem 'guard-rspec'
18
18
  gem 'guard-rubocop'
19
- gem 'rake', '~> 12.0'
19
+ gem 'rake'
20
20
  gem 'rake-compiler', require: false
21
21
  gem 'rspec', '~> 3.0'
22
22
  gem 'rubocop'
@@ -25,7 +25,7 @@ group :development, :test do
25
25
  end
26
26
 
27
27
  # If local dependency
28
- if ENV['KLUE_LOCAL_GEMS']&.to_s&.downcase == 'true'
28
+ if ENV.fetch('KLUE_LOCAL_GEMS', 'false').downcase == 'true'
29
29
  group :development, :test do
30
30
  puts 'Using Local GEMs'
31
31
  gem 'k_log' , path: '../k_log'
data/k_domain.gemspec CHANGED
@@ -3,7 +3,7 @@
3
3
  require_relative 'lib/k_domain/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.required_ruby_version = '>= 2.5'
6
+ spec.required_ruby_version = '>= 2.7'
7
7
  spec.name = 'k_domain'
8
8
  spec.version = KDomain::VERSION
9
9
  spec.authors = ['David Cruwys']
@@ -39,8 +39,8 @@ Gem::Specification.new do |spec|
39
39
  spec.require_paths = ['lib']
40
40
  # spec.extensions = ['ext/k_domain/extconf.rb']
41
41
 
42
- spec.add_dependency 'activesupport' , '~> 6'
42
+ spec.add_dependency 'activesupport', '~> 7'
43
43
  spec.add_dependency 'dry-struct', '~> 1'
44
- spec.add_dependency 'k_log' , '~> 0.0.0'
45
- spec.add_dependency 'peeky' , '~> 0.0.0'
44
+ spec.add_dependency 'k_log' , '~> 0'
45
+ spec.add_dependency 'peeky' , '~> 0'
46
46
  end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Loads the db schema object and works through a series of enrichment steps to
4
+ # that builds the domain modal
5
+
6
+ module KDomain
7
+ module DomainModel
8
+ class BuildRichModels
9
+ include KLog::Logging
10
+
11
+ attr_reader :db_schema
12
+ attr_reader :target_folder
13
+ attr_reader :query
14
+
15
+ def initialize(domain_model:, target_folder:)
16
+ @domain_model = domain_model
17
+ @target_folder = target_folder
18
+ @query = KDomain::Queries::DomainModelQuery.new(domain_model)
19
+ end
20
+
21
+ def call
22
+ FileUtils.mkdir_p(target_folder)
23
+
24
+ export_domain_models(query.all) # .take(3))
25
+ end
26
+
27
+ def export_domain_models(models)
28
+ puts 'export domain models'
29
+ models.each do |model|
30
+ # write a single dot to the console in the color red
31
+ print "\e[31m.\e[0m"
32
+
33
+ json = JSON.pretty_generate(build_rich_model(model))
34
+ target_file = File.join(target_folder, "#{model.name}.json")
35
+ File.write(target_file, json)
36
+ end
37
+ end
38
+
39
+ # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
40
+ def build_rich_model(model)
41
+ {
42
+ name: model.name,
43
+ name_plural: model.name_plural,
44
+ table_name: model.table_name,
45
+ type: model.type,
46
+ pk: model.pk.to_h,
47
+ file: model.file,
48
+ exist: model.ruby?,
49
+ create_update_timestamp: model.create_update_timestamp?,
50
+ main_key: model.main_key,
51
+ traits: model.traits,
52
+ column_names: {
53
+ all: model.columns.map(&:name),
54
+ data: model.columns_data.map(&:name),
55
+ primary: model.columns_primary.map(&:name),
56
+ foreign_key: model.columns_foreign_key.map(&:name),
57
+ foreign_type: model.columns_foreign_type.map(&:name),
58
+ timestamp: model.columns_timestamp.map(&:name),
59
+ deleted_at: model.columns_deleted_at.map(&:name),
60
+ virtual: model.columns_virtual.map(&:name),
61
+ data_foreign: model.columns_data_foreign.map(&:name),
62
+ data_primary: model.columns_data_primary.map(&:name),
63
+ data_virtual: model.columns_data_virtual.map(&:name),
64
+ data_foreign_virtual: model.columns_data_foreign_virtual.map(&:name)
65
+ },
66
+ columns: {
67
+ all: model.columns.map(&:to_h),
68
+ data: model.columns_data.map(&:to_h),
69
+ primary: model.columns_primary.map(&:to_h),
70
+ foreign_key: model.columns_foreign_key.map(&:to_h),
71
+ foreign_type: model.columns_foreign_type.map(&:to_h),
72
+ timestamp: model.columns_timestamp.map(&:to_h),
73
+ deleted_at: model.columns_deleted_at.map(&:to_h),
74
+ virtual: model.columns_virtual.map(&:to_h),
75
+ data_foreign: model.columns_data_foreign.map(&:to_h),
76
+ data_primary: model.columns_data_primary.map(&:to_h),
77
+ data_virtual: model.columns_data_virtual.map(&:to_h),
78
+ data_foreign_virtual: model.columns_data_foreign_virtual.map(&:to_h)
79
+ }
80
+ }
81
+ end
82
+ # rubocop:enable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
83
+ end
84
+ end
85
+ end
@@ -22,8 +22,10 @@ module KDomain
22
22
  json = File.read(source_file)
23
23
  @raw_data = KUtil.data.json_parse(json, as: :hash_symbolized)
24
24
 
25
- @data = KDomain::Schemas::DomainModel.new(@raw_data)
25
+ # This line is slow on big datasets
26
+ @data = KDomain::Schemas::MainDataset.new(@raw_data)
26
27
 
28
+ # This line is also slow on big datasets
27
29
  enrichment
28
30
  end
29
31
 
@@ -14,17 +14,19 @@ module KDomain
14
14
  attr_reader :model_path
15
15
  attr_reader :controller_path
16
16
  attr_reader :route_path
17
- attr_reader :shim_loader
17
+ attr_reader :model_shim_loader
18
+ attr_reader :controller_shim_loader
18
19
 
19
20
  # rubocop:disable Metrics/ParameterLists
20
- def initialize(db_schema: , target_file: , target_step_file: , model_path:, route_path:, controller_path:, shim_loader: nil)
21
- @db_schema = db_schema
22
- @target_step_file = target_step_file
23
- @target_file = target_file
24
- @model_path = model_path
25
- @controller_path = controller_path
26
- @route_path = route_path
27
- @shim_loader = shim_loader
21
+ def initialize(db_schema: , target_file: , target_step_file: , model_path:, route_path:, controller_path:, model_shim_loader: nil, controller_shim_loader: nil)
22
+ @db_schema = db_schema
23
+ @target_step_file = target_step_file
24
+ @target_file = target_file
25
+ @model_path = model_path
26
+ @controller_path = controller_path
27
+ @route_path = route_path
28
+ @model_shim_loader = model_shim_loader
29
+ @controller_shim_loader = controller_shim_loader
28
30
  end
29
31
  # rubocop:enable Metrics/ParameterLists
30
32
 
@@ -35,8 +37,8 @@ module KDomain
35
37
  valid &&= Step2DomainModels.run(domain_data, model_path: model_path, step_file: step_file('02-domain-model'))
36
38
  valid &&= Step4RailsResourceModels.run(domain_data, model_path: model_path, step_file: step_file('04-rails-resource-models'))
37
39
  valid &&= Step5RailsResourceRoutes.run(domain_data, route_path: route_path, controller_path: controller_path, step_file: step_file('05-rails-resource-routes'))
38
- valid &&= Step6RailsStructureModels.run(domain_data, model_path: model_path, step_file: step_file('06-rails-structure-models'), shim_loader: shim_loader)
39
- valid &&= Step7RailsStructureControllers.run(domain_data, controller_path: controller_path, step_file: step_file('07-rails-structure-controllers'), shim_loader: shim_loader)
40
+ valid &&= Step6RailsStructureModels.run(domain_data, model_path: model_path, step_file: step_file('06-rails-structure-models'), shim_loader: model_shim_loader)
41
+ valid &&= Step7RailsStructureControllers.run(domain_data, controller_path: controller_path, step_file: step_file('07-rails-structure-controllers'), shim_loader: controller_shim_loader)
40
42
  valid &&= Step8DomainColumns.run(domain_data, step_file: step_file('08-domain-columns'))
41
43
  valid &&= Step20Dictionary.run(domain_data, step_file: step_file('20-dictionary'))
42
44
 
@@ -37,6 +37,7 @@ class Step6RailsStructureModels < KDomain::DomainModel::Step
37
37
 
38
38
  def attach_behavior_and_functions
39
39
  rails_structure_models.select { |model| model[:exist] }.each do |model|
40
+ # puts "model: #{model[:model_name]}"
40
41
  model[:behaviours] = extract_behavior(model[:file])
41
42
  klass_name = model[:behaviours][:class_name]
42
43
  model[:functions] = extract_functions(klass_name)
@@ -58,7 +58,10 @@ class Step7RailsStructureControllers < KDomain::DomainModel::Step
58
58
  end
59
59
 
60
60
  def attach_behavior_and_functions
61
+ rails_structure_controllers.sort_by! { |controller| controller[:full_file] }
62
+
61
63
  rails_structure_controllers.select { |controller| controller[:exist] }.each do |controller|
64
+ # puts "controller: #{controller[:full_file]}"
62
65
  unless File.exist?(controller[:full_file])
63
66
  log.error 'Controller apparently exists but no file found, this means that you need re-run rake routes'
64
67
  puts controller[:full_file]
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './base_query'
4
+ require_relative './domain_model_query'
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KDomain
4
+ module Queries
5
+ class BaseQuery
6
+ attr_reader :domain_model
7
+
8
+ def initialize(domain_model)
9
+ @domain_model = domain_model
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KDomain
4
+ module Queries
5
+ # Query models found on the domain model
6
+ # by
7
+ # has ruby file
8
+ # has primary key
9
+ # column count
10
+ # data column count
11
+ # foreign key column count
12
+ # has timestamp (created_at, updated_at) columns
13
+ # has created_at
14
+ # has updated_at
15
+ # has deleted_at
16
+ # has polymorphic foreign keys
17
+ # has virtual columns
18
+ # virtual column filters (token, encrypted_password, etc)
19
+ class DomainModelQuery < BaseQuery
20
+ def all
21
+ domain_model.domain.models
22
+ end
23
+
24
+ def query(**filters)
25
+ @query = all.clone
26
+
27
+ filters.each do |key, value|
28
+ send("filter_#{key}", value)
29
+ end
30
+
31
+ @query
32
+ end
33
+
34
+ private
35
+
36
+ def filter_ruby(value)
37
+ @query.select! { |model| model.ruby? == value }
38
+ end
39
+
40
+ def filter_pk(value)
41
+ @query.select! { |model| model.pk.exist? == value }
42
+ end
43
+
44
+ def filter_column_count(block)
45
+ @query.select! { |model| block.call(model.columns.count) }
46
+ end
47
+
48
+ def filter_data_column_count(block)
49
+ @query.select! { |model| block.call(model.columns_data.count) }
50
+ end
51
+
52
+ def filter_foreign_key_column_count(block)
53
+ @query.select! { |model| block.call(model.columns_foreign_key.count) }
54
+ end
55
+ alias filter_fk_column_count filter_foreign_key_column_count
56
+ alias filter_fk_count filter_foreign_key_column_count
57
+
58
+ def filter_polymorphic_foreign_key_column_count(block)
59
+ @query.select! { |model| block.call(model.columns_foreign_type.count) }
60
+ end
61
+ alias filter_poly_fk_column_count filter_polymorphic_foreign_key_column_count
62
+ alias filter_poly_fk_count filter_polymorphic_foreign_key_column_count
63
+
64
+ def filter_timestamp(value)
65
+ @query.select! { |model| (model.columns_timestamp.count == 2) == value }
66
+ end
67
+
68
+ def filter_created_at(value)
69
+ @query.select! { |model| (model.columns.any? { |column| column.name == 'created_at' } == value) }
70
+ end
71
+
72
+ def filter_updated_at(value)
73
+ @query.select! { |model| (model.columns.any? { |column| column.name == 'updated_at' } == value) }
74
+ end
75
+
76
+ def filter_deleted_at(value)
77
+ @query.select! { |model| (model.columns.any? { |column| column.name == 'deleted_at' } == value) }
78
+ end
79
+ # has virtual columns
80
+ # virtual column filters (token, encrypted_password, etc)
81
+
82
+ # # HELP: this filter affects table rows, eg. if a table has less the 2 columns then include the table
83
+ # low_column: -> (model) { model.columns.length < 5 },
84
+ # suspected_m2m: -> (model) { model.columns_foreign.length == 2 && model.columns_data.length < 3 },
85
+ # invalid_types: -> (model) { model.columns.any? { |c| [c.db_type, c.csharp_type, c.ruby_type].include?('******') } },
86
+ end
87
+ end
88
+ end
@@ -18,8 +18,10 @@ module KDomain
18
18
  end
19
19
 
20
20
  def call
21
- # puts shim_files.map { |sf| sf[:file] }
22
- shim_files.select { |sf| sf[:exist] }.each { |sf| require sf[:file] }
21
+ shim_files.select { |sf| sf[:exist] }.each do |sf|
22
+ require sf[:file]
23
+ end
24
+ nil
23
25
  end
24
26
 
25
27
  def register(name, file)
@@ -13,6 +13,6 @@ require_relative 'database'
13
13
  require_relative 'dictionary'
14
14
  require_relative 'domain_types'
15
15
  require_relative 'domain'
16
- require_relative 'domain_model'
16
+ require_relative 'main_dataset'
17
17
 
18
18
  # require_relative './domain_model'
@@ -47,12 +47,53 @@ module KDomain
47
47
 
48
48
  @csharp_type = KDomain::Schemas::CSHARP_TYPE[type] || '******'
49
49
  end
50
+
51
+ # rubocop:disable Metrics/AbcSize
52
+ def to_h
53
+ {
54
+ name: name,
55
+ name_plural: name_plural,
56
+ type: type,
57
+ precision: precision,
58
+ scale: scale,
59
+ default: default,
60
+ default_as_code: value_as_code(default),
61
+ null: null,
62
+ null_as_code: value_as_code(null), # handlebars does not like null property name
63
+ limit: limit,
64
+ array: array,
65
+ array_as_code: value_as_code(array),
66
+ db_type: db_type,
67
+ ruby_type: ruby_type,
68
+ csharp_type: csharp_type,
69
+ structure_type: structure_type,
70
+ relationships: relationships
71
+ }
72
+ end
73
+ # rubocop:enable Metrics/AbcSize
74
+
75
+ private
76
+
77
+ def value_as_code(value)
78
+ return value if value.nil?
79
+
80
+ case value
81
+ when String # , Hash
82
+ "'#{value}'"
83
+ else
84
+ value.to_s
85
+ end
86
+ end
50
87
  end
51
88
 
52
89
  class Pk < Dry::Struct
53
90
  attribute :name , Types::Strict::String.optional.default(nil)
54
91
  attribute :type , Types::Strict::String.optional.default(nil)
55
92
  attribute :exist , Types::Strict::Bool
93
+
94
+ def exist?
95
+ exist
96
+ end
56
97
  end
57
98
 
58
99
  attribute :name , Types::Strict::String
@@ -75,6 +116,12 @@ module KDomain
75
116
  pk.exist
76
117
  end
77
118
 
119
+ def create_update_timestamp?
120
+ names = columns_timestamp.map(&:name)
121
+
122
+ (names & %w[created_at updated_at]).any?
123
+ end
124
+
78
125
  # Custom model configurations such as main_key and traits
79
126
  def config
80
127
  @config ||= KDomain.configuration.find_model(name.to_sym)
@@ -97,10 +144,11 @@ module KDomain
97
144
  @columns_primary ||= columns_for_structure_types(:primary_key)
98
145
  end
99
146
 
100
- def columns_foreign
147
+ def columns_foreign_key
101
148
  @columns_foreign ||= columns_for_structure_types(:foreign_key)
102
149
  end
103
150
 
151
+ # polymorphic foreign keys
104
152
  def columns_foreign_type
105
153
  @columns_foreign_type ||= columns_for_structure_types(:foreign_type)
106
154
  end
@@ -118,7 +166,7 @@ module KDomain
118
166
  end
119
167
 
120
168
  def columns_data_foreign
121
- @columns_data_foreign ||= columns_for_structure_types(:data, :foreign_key)
169
+ @columns_data_foreign ||= columns_for_structure_types(:data, :foreign_key, :foreign_type)
122
170
  end
123
171
  alias rows_fields_and_fk columns_data_foreign
124
172
 
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # DomainModel holds the entire domain model including database and ancillary information
3
+ # MainDataset holds the entire domain model including database and ancillary information
4
4
  module KDomain
5
5
  module Schemas
6
- class DomainModel < Dry::Struct
6
+ class MainDataset < Dry::Struct
7
7
  attribute :domain , KDomain::Schemas::Domain
8
8
  attribute :database , KDomain::Schemas::Database
9
9
  attribute :dictionary , KDomain::Schemas::Dictionary
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KDomain
4
- VERSION = '0.0.26'
4
+ VERSION = '0.0.29'
5
5
  end
data/lib/k_domain.rb CHANGED
@@ -12,7 +12,9 @@ require 'k_domain/raw_db_schema/load'
12
12
  require 'k_domain/domain_model/transform'
13
13
  require 'k_domain/domain_model/transform_steps/_'
14
14
  require 'k_domain/domain_model/load'
15
+ require 'k_domain/domain_model/build_rich_models'
15
16
  require 'k_domain/rails_code_extractor/_'
17
+ require 'k_domain/queries/_'
16
18
 
17
19
  # # This is useful if you want to initialize structures via Hash
18
20
  # class SymbolizeStruct < Dry::Struct
@@ -38,7 +40,7 @@ module KDomain
38
40
  # Your code goes here...
39
41
  end
40
42
 
41
- if ENV['KLUE_DEBUG']&.to_s&.downcase == 'true'
43
+ if ENV.fetch('KLUE_DEBUG', 'false').downcase == 'true'
42
44
  namespace = 'KDomain::Version'
43
45
  file_path = $LOADED_FEATURES.find { |f| f.include?('k_domain/version') }
44
46
  version = KDomain::VERSION.ljust(9)
@@ -3,34 +3,5 @@ module ActionController
3
3
  def self.require(require)
4
4
  add(:require, require)
5
5
  end
6
- # def self.rescue_from(type)#, &block)
7
- # # block_source = nil
8
- # # block_source = lambda_source(block, 'default_scope') if block_given?
9
-
10
- # add(:rescue_from, {
11
- # type: type#,
12
- # # block: block_source
13
- # })
14
- # end
15
- # def self.helper_method(*names)
16
- # add(:helper_method, {
17
- # names: names
18
- # })
19
- # end
20
- # def self.helper(name)
21
- # add(:helper, {
22
- # name: name
23
- # })
24
- # end
25
- # def self.http_basic_authenticate_with(**opts)
26
- # add(:http_basic_authenticate_with, {
27
- # opts: opts
28
- # })
29
- # end
30
- # def self.protect_from_forgery(**opts)
31
- # add(:protect_from_forgery, {
32
- # opts: opts
33
- # })
34
- # end
35
6
  end
36
7
  end
@@ -10,18 +10,14 @@ class Rails
10
10
  )
11
11
  end
12
12
  end
13
- class RegionConfig
14
- def self.require_value(*_p, **_o, &block); end
15
- end
16
-
17
13
  class ApplicationController < ActionController::Base
14
+ def self.require(*_p, **_o); end
18
15
  end
19
16
 
20
17
  module Admin
21
18
  class BaseController < ActionController::Base
22
19
  end
23
20
  end
24
-
25
21
  module Api
26
22
  module V1
27
23
  class BaseController < ActionController::Base
@@ -38,12 +34,18 @@ module Portal
38
34
  class BaseController < ApplicationController
39
35
  end
40
36
  end
41
-
42
37
  module ActiveRecord
43
38
  class RecordNotFound
44
39
  end
45
40
  end
46
-
41
+ class RegionConfig < ActiveRecord::Base
42
+ def self.require_value(*_p, **_o, &block)
43
+ return 'ABC'
44
+ end
45
+ def self.get_value
46
+ return 'ABC'
47
+ end
48
+ end
47
49
  module Aws
48
50
  class Credentials
49
51
  def initialize(*_p, **_o, &block); end
@@ -11,11 +11,32 @@ module ActsAsCommentable
11
11
  end
12
12
  end
13
13
 
14
+
14
15
  module Scopes
15
16
  module CompanyScopes
16
17
  end
17
18
  end
18
19
 
20
+ module DeIdentifiable
21
+ def deidentifiable(*_p, **_o); end
22
+ end
23
+
24
+ class Company < ActiveRecord::Base
25
+ extend DeIdentifiable
26
+ end
27
+ class Estimate < ActiveRecord::Base
28
+ extend DeIdentifiable
29
+ end
30
+ class Invoice < ActiveRecord::Base
31
+ extend DeIdentifiable
32
+ end
33
+ class Address < ActiveRecord::Base
34
+ extend DeIdentifiable
35
+ end
36
+ class Contact < ActiveRecord::Base
37
+ extend DeIdentifiable
38
+ end
39
+
19
40
  class Thread
20
41
  def initialize(*_p, **_o, &block); end
21
42
  end
@@ -41,17 +62,41 @@ module ApiLoggable; end
41
62
  module Excludable; end
42
63
  module Bookmarkable; end
43
64
  module Categorizable; end
44
- module PgSearch; end
65
+ module PgSearch
66
+ module Model
67
+ end
68
+ end
45
69
  module Excludable; end
46
- module JsonbStore; end
70
+ module JsonbStore
71
+ def self.included(klass)
72
+ klass.extend(ClassMethods)
73
+ end
47
74
 
75
+ module ClassMethods
76
+ def jsonb_store(*_p, **_o); end
77
+ end
78
+ end
48
79
  module ActionView
49
80
  module Helpers
50
81
  module NumberHelper
51
82
  end
52
83
  end
53
84
  end
54
-
85
+ module PrintSpeak
86
+ class Application
87
+ def self.google_oath_secret_key
88
+ 'ABC'
89
+ end
90
+ end
91
+ end
92
+ class RegionConfig < ActiveRecord::Base
93
+ def self.require_value(*_p, **_o, &block)
94
+ 'ABC'
95
+ end
96
+ def self.get_value
97
+ return 'ABC'
98
+ end
99
+ end
55
100
  module RailsUpgrade
56
101
  def rails4?
57
102
  true
@@ -4,6 +4,8 @@ module ActiveRecord
4
4
  class Base
5
5
  extend RubyCodeExtractor::BehaviourAccessors
6
6
 
7
+ def self.require(*_p, **_o); end
8
+
7
9
  def self.singleton_class
8
10
  Class.new do
9
11
  def send(*_p, **_o); end
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.26
4
+ version: 0.0.29
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-04-08 00:00:00.000000000 Z
11
+ date: 2022-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '6'
19
+ version: '7'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '6'
26
+ version: '7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: dry-struct
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.0.0
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.0.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: peeky
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.0.0
61
+ version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.0.0
68
+ version: '0'
69
69
  description: " K Domain builds complex domain schemas by combining the database
70
70
  schema with a rich entity relationship DSLs\n"
71
71
  email:
@@ -101,6 +101,7 @@ files:
101
101
  - lib/k_domain/config/_.rb
102
102
  - lib/k_domain/config/config.rb
103
103
  - lib/k_domain/config/configuration.rb
104
+ - lib/k_domain/domain_model/build_rich_models.rb
104
105
  - lib/k_domain/domain_model/load.rb
105
106
  - lib/k_domain/domain_model/transform.rb
106
107
  - lib/k_domain/domain_model/transform_steps/_.rb
@@ -113,6 +114,9 @@ files:
113
114
  - lib/k_domain/domain_model/transform_steps/step6_rails_structure_models.rb
114
115
  - lib/k_domain/domain_model/transform_steps/step7_rails_structure_controllers.rb
115
116
  - lib/k_domain/domain_model/transform_steps/step8_domain_columns.rb
117
+ - lib/k_domain/queries/_.rb
118
+ - lib/k_domain/queries/base_query.rb
119
+ - lib/k_domain/queries/domain_model_query.rb
116
120
  - lib/k_domain/rails_code_extractor/_.rb
117
121
  - lib/k_domain/rails_code_extractor/extract_controller.rb
118
122
  - lib/k_domain/rails_code_extractor/extract_model.rb
@@ -140,9 +144,9 @@ files:
140
144
  - lib/k_domain/schemas/domain/old/statistics.rb
141
145
  - lib/k_domain/schemas/domain/old/validate.rb
142
146
  - lib/k_domain/schemas/domain/old/validates.rb
143
- - lib/k_domain/schemas/domain_model.rb
144
147
  - lib/k_domain/schemas/domain_types.rb
145
148
  - lib/k_domain/schemas/investigate.rb
149
+ - lib/k_domain/schemas/main_dataset.rb
146
150
  - lib/k_domain/schemas/rails_resource.rb
147
151
  - lib/k_domain/schemas/rails_structure.rb
148
152
  - lib/k_domain/version.rb
@@ -171,14 +175,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
171
175
  requirements:
172
176
  - - ">="
173
177
  - !ruby/object:Gem::Version
174
- version: '2.5'
178
+ version: '2.7'
175
179
  required_rubygems_version: !ruby/object:Gem::Requirement
176
180
  requirements:
177
181
  - - ">="
178
182
  - !ruby/object:Gem::Version
179
183
  version: '0'
180
184
  requirements: []
181
- rubygems_version: 3.2.33
185
+ rubygems_version: 3.1.6
182
186
  signing_key:
183
187
  specification_version: 4
184
188
  summary: K Domain builds complex domain schemas by combining the database schema with