class ReeDao::Associations
def association(assoc_type, assoc_name, __opts, &block)
def association(assoc_type, assoc_name, __opts, &block) if parent_dao.nil? || parent_dao.db.in_transaction? || self.class.sync_mode? return if association_is_not_included?(assoc_name) || list.empty? association = Association.new(self, parent_dao, list, **global_opts) if assoc_type == :field association.handle_field(__opts) else association.load(assoc_type, assoc_name, **get_assoc_opts(__opts), &block) end else if association_is_not_included?(assoc_name) || list.empty? return { association_threads: @assoc_threads, field_threads: @field_threads } end association = Association.new(self, parent_dao, list, **global_opts) if assoc_type == :field field_proc = __opts { association_threads: @assoc_threads, field_threads: @field_threads << [ association, field_proc ] } else { association_threads: @assoc_threads << [ association, assoc_type, assoc_name, get_assoc_opts(__opts), block ], field_threads: @field_threads } end end end