9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/foobara/active_record_type.rb', line 9
def install!
TypeDeclarations.register_type_declaration(ExtendActiveRecordTypeDeclaration.new)
detached_entity = Namespace.global.foobara_lookup_type!(:detached_entity)
type = BuiltinTypes.build_and_register!(
:active_record,
detached_entity,
nil,
type_module: Foobara::ActiveRecordType
)
type.remove_processor_by_symbol(:attributes_declaration)
type.remove_processor_by_symbol(:model_instance_is_valid)
BuiltinTypes.install_type_declaration_extensions_for(ExtendActiveRecordTypeDeclaration)
ActiveRecord::Base.include ModelAttributeHelpers::Concerns::AttributeHelpers
ActiveRecord::Base.include ActiveRecordFoobaraMethods
ActiveRecord::Base.include Foobara::Model::Concerns::Reflection
ActiveRecord::Base.include Foobara::DetachedEntity::Concerns::Reflection
if defined?(Foobara::CommandConnectors::RailsCommandConnector)
Foobara::CommandConnectors::RailsCommandConnector.default_serializers = [
Foobara::CommandConnectors::Serializers::,
Foobara::CommandConnectors::Serializers::ActiveRecordAtomicSerializer,
Foobara::CommandConnectors::Serializers::JsonSerializer
]
end
DetachedEntityType.types_requiring_conversion << :active_record
DetachedEntityType.model_base_classes_requiring_conversion << "ActiveRecord::Base"
end
|