From d038c277d7a74151e979c70f1fc8c2e67fdf17d4 Mon Sep 17 00:00:00 2001 From: LTLA Date: Mon, 20 May 2024 23:06:56 -0700 Subject: [PATCH] Respect application overrides when saving SE base from the RSE method. --- DESCRIPTION | 4 ++-- R/saveRangedSummarizedExperiment.R | 6 +++++- inst/NEWS.Rd | 7 +++++++ 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 inst/NEWS.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 8ada635..679fda8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: alabaster.se Title: Load and Save SummarizedExperiments from File -Version: 1.5.0 -Date: 2024-02-21 +Version: 1.5.1 +Date: 2024-05-20 Authors@R: person("Aaron", "Lun", role=c("aut", "cre"), email="infinite.monkeys.with.keyboards@gmail.com") License: MIT + file LICENSE Description: diff --git a/R/saveRangedSummarizedExperiment.R b/R/saveRangedSummarizedExperiment.R index 6a58e18..38bd695 100644 --- a/R/saveRangedSummarizedExperiment.R +++ b/R/saveRangedSummarizedExperiment.R @@ -38,7 +38,11 @@ NULL #' @importFrom SummarizedExperiment rowRanges #' @importFrom S4Vectors mcols<- setMethod("saveObject", "RangedSummarizedExperiment", function(x, path, ...) { - callNextMethod() + # Can't use callNextMethod() as we want to dispatch on application + # overrides; to avoid potential infinite recursion from the override + # calling back to saveObject, we explicitly cast to the base class. + base <- as(x, "SummarizedExperiment") + altSaveObject(base, path, ...) if (!emptyRowRanges(x)) { rr <- rowRanges(x) diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd new file mode 100644 index 0000000..7e2c0a6 --- /dev/null +++ b/inst/NEWS.Rd @@ -0,0 +1,7 @@ +\name{alabaster.se News} +\title{alabaster.se News} +\encoding{UTF-8} + +\section{Version 1.6.0}{\itemize{ +\item Respect application-level overrides when saving the SummarizedExperiment base from the RangedSummarizedExperiment's \code{saveObject} method. +}}