Class: Foobara::Autocrud::CreateEntity
Constant Summary
TruncatedInspect::MAX_LENGTH
Instance Attribute Summary collapse
Instance Method Summary
collapse
#validate, #validate_base!
Methods inherited from Command
install!
#inspect, truncating
Methods included from Concern
foobara_class_methods_module_for, foobara_concern?, included
Instance Attribute Details
#desugarized_attributes_declaration ⇒ Object
Returns the value of attribute desugarized_attributes_declaration.
26
27
28
|
# File 'src/create_entity.rb', line 26
def desugarized_attributes_declaration
@desugarized_attributes_declaration
end
|
#domain ⇒ Object
Returns the value of attribute domain.
26
27
28
|
# File 'src/create_entity.rb', line 26
def domain
@domain
end
|
#type ⇒ Object
Returns the value of attribute type.
26
27
28
|
# File 'src/create_entity.rb', line 26
def type
@type
end
|
#type_declaration ⇒ Object
Returns the value of attribute type_declaration.
26
27
28
|
# File 'src/create_entity.rb', line 26
def type_declaration
@type_declaration
end
|
Instance Method Details
#attributes_handler ⇒ Object
#build_type_declaration ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'src/create_entity.rb', line 53
def build_type_declaration
self.type_declaration = {
type: :entity,
attributes_declaration: desugarized_attributes_declaration,
name:,
primary_key: desugarized_attributes_declaration[:element_type_declarations].keys.first
}
if domain && domain != GlobalDomain
type_declaration[:model_module] = domain
end
end
|
#create_type ⇒ Object
66
67
68
|
# File 'src/create_entity.rb', line 66
def create_type
self.type = run_subcommand!(CreateType, type_declaration:)
end
|
#desugarize_attributes_declaration ⇒ Object
43
44
45
46
47
48
49
50
51
|
# File 'src/create_entity.rb', line 43
def desugarize_attributes_declaration
self.desugarized_attributes_declaration = if attributes_declaration.is_a?(Proc)
TypeDeclarations::Dsl::Attributes.to_declaration(
&attributes_declaration
)
else
attributes_handler.desugarize(attributes_declaration)
end
end
|
#determine_domain ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'src/create_entity.rb', line 28
def determine_domain
domain = inputs[:domain]
self.domain = Domain.to_domain(domain)
rescue Domain::NoSuchDomain => e
if domain.is_a?(::String) || domain.is_a?(::Symbol)
self.domain = Domain.create(domain)
else
raise e
end
end
|
#entity_class ⇒ Object
70
71
72
|
# File 'src/create_entity.rb', line 70
def entity_class
type.target_class
end
|
#execute ⇒ Object
16
17
18
19
20
21
22
23
24
|
# File 'src/create_entity.rb', line 16
def execute
determine_domain
desugarize_attributes_declaration
build_type_declaration
create_type
entity_class
end
|