class Tapioca::Dsl::Compilers::ActiveRecordRelations
def create_collection_proxy_class
def create_collection_proxy_class superclass = "::ActiveRecord::Associations::CollectionProxy" # The relation subclass includes the generated association relation module model.create_class(AssociationsCollectionProxyClassName, superclass_name: superclass) do |klass| klass.create_include(CommonRelationMethodsModuleName) klass.create_include(AssociationRelationMethodsModuleName) klass.create_type_variable("Elem", type: "type_member", fixed: constant_name) TO_ARRAY_METHODS.each do |method_name| klass.create_method(method_name.to_s, return_type: "T::Array[#{constant_name}]") end create_collection_proxy_methods(klass) end end