Class: KDomain::DomainModel::Step
- Inherits:
-
Object
- Object
- KDomain::DomainModel::Step
show all
- Includes:
- KLog::Logging
- Defined in:
- lib/k_domain/domain_model/transform_steps/step.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(domain_data, **opts) ⇒ Step
Returns a new instance of Step.
13
14
15
16
17
18
19
20
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 13
def initialize(domain_data, **opts)
@domain_data = domain_data
@opts = opts
@valid = true
end
|
Instance Attribute Details
#domain_data ⇒ Object
Returns the value of attribute domain_data.
8
9
10
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 8
def domain_data
@domain_data
end
|
#opts ⇒ Object
Returns the value of attribute opts.
9
10
11
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 9
def opts
@opts
end
|
#valid ⇒ Object
Also known as:
valid?
Returns the value of attribute valid.
10
11
12
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 10
def valid
@valid
end
|
Class Method Details
.run(domain_data, **opts) ⇒ Object
24
25
26
27
28
29
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 24
def self.run(domain_data, **opts)
step = new(domain_data, **opts)
step.call
step.write(opts[:step_file])
step.valid?
end
|
Instance Method Details
#call ⇒ Object
22
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 22
def call; end
|
#database ⇒ Object
115
116
117
118
119
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 115
def database
guard('database is missing') if domain_data[:database].nil?
domain_data[:database]
end
|
#database=(value) ⇒ Object
Database Accessor/Helpers
111
112
113
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 111
def database=(value)
domain_data[:database] = value
end
|
#database_foreign_keys ⇒ Object
127
128
129
130
131
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 127
def database_foreign_keys
guard('database_foreign_keys is missing') if database[:foreign_keys].nil?
database[:foreign_keys]
end
|
#database_tables ⇒ Object
121
122
123
124
125
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 121
def database_tables
guard('database_tables is missing') if database[:tables].nil?
database[:tables]
end
|
#domain ⇒ Object
Domain Model Accessor/Helpers
46
47
48
49
50
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 46
def domain
guard('domain is missing') if domain_data[:domain].nil?
domain_data[:domain]
end
|
#domain_models ⇒ Object
52
53
54
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 52
def domain_models
domain[:models]
end
|
#find_foreign_table(lhs_table_name, column_name) ⇒ Object
145
146
147
148
149
150
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 145
def find_foreign_table(lhs_table_name, column_name)
fk = database_foreign_keys.find { |foreign_key| foreign_key[:left] == lhs_table_name && foreign_key[:column] == column_name }
return fk[:right] if fk
nil
end
|
#find_rails_structure_models(model_name) ⇒ Object
94
95
96
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 94
def find_rails_structure_models(model_name)
rails_structure_models.find { |model| model[:model_name] == model_name }
end
|
#find_table_for_model(model) ⇒ Object
133
134
135
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 133
def find_table_for_model(model)
database_tables.find { |table| table[:name] == model[:table_name] }
end
|
#guard(message) ⇒ Object
31
32
33
34
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 31
def guard(message)
log.error message
@valid = false
end
|
#investigate(step:, location:, key:, message:) ⇒ Object
152
153
154
155
156
157
158
159
160
161
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 152
def investigate(step:, location:, key:, message:)
unique_key = build_key(step, location, key)
return if issue_hash.key?(unique_key)
value = { step: step, location: location, key: key, message: message }
issues << value issue_hash[unique_key] = value end
|
#issues ⇒ Object
163
164
165
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 163
def issues
domain_data[:investigate][:issues]
end
|
#rails_resource ⇒ Object
Rails Resource File Accessor/Helpers
57
58
59
60
61
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 57
def rails_resource
guard('rails_resource is missing') if domain_data[:rails_resource].nil?
domain_data[:rails_resource]
end
|
#rails_resource_controllers ⇒ Object
79
80
81
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 79
def rails_resource_controllers
rails_resource[:controllers]
end
|
#rails_resource_models ⇒ Object
63
64
65
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 63
def rails_resource_models
rails_resource[:models]
end
|
#rails_resource_models=(value) ⇒ Object
67
68
69
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 67
def rails_resource_models=(value)
rails_resource[:models] = value
end
|
#rails_resource_routes ⇒ Object
71
72
73
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 71
def rails_resource_routes
rails_resource[:routes]
end
|
#rails_resource_routes=(value) ⇒ Object
75
76
77
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 75
def rails_resource_routes=(value)
rails_resource[:routes] = value
end
|
#rails_structure ⇒ Object
Rails Structure File Accessor/Helpers
84
85
86
87
88
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 84
def rails_structure
guard('rails_structure is missing') if domain_data[:rails_structure].nil?
domain_data[:rails_structure]
end
|
#rails_structure_controllers ⇒ Object
102
103
104
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 102
def rails_structure_controllers
rails_structure[:controllers]
end
|
#rails_structure_controllers=(value) ⇒ Object
106
107
108
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 106
def rails_structure_controllers=(value)
rails_structure[:controllers] = value
end
|
#rails_structure_models ⇒ Object
90
91
92
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 90
def rails_structure_models
rails_structure[:models]
end
|
#rails_structure_models=(value) ⇒ Object
98
99
100
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 98
def rails_structure_models=(value)
rails_structure[:models] = value
end
|
#table_name_exist?(table_name) ⇒ Boolean
137
138
139
140
141
142
143
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 137
def table_name_exist?(table_name)
if table_name.nil?
guard('table_name_exist? was provided with a table_name: nil')
return false
end
database_table_name_hash.key?(table_name)
end
|
#warning(message) ⇒ Object
36
37
38
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 36
def warning(message)
log.warn message
end
|
#write(file) ⇒ Object
40
41
42
43
|
# File 'lib/k_domain/domain_model/transform_steps/step.rb', line 40
def write(file)
FileUtils.mkdir_p(File.dirname(file))
File.write(file, JSON.pretty_generate(domain_data))
end
|