R/Join.R

Defines functions Join

Documented in Join

# Join - merge containers ----------------------------------------------------

#' [!] Merge objects to `knitrContainer`
#'
#' \code{Join} converts objects to \code{knitrContainer} objects
#' (method "as is") and \bold{merges} them to one container.
#' @param ... objects to be merged.
#' @param list objects to be merged provided as a list.
#' @return knitrContainer
#' @export
#'
#' @examples
#'
#' # Find examples in link `knitrContainer-class`
#'
#' @author Vilmantas Gegzna
#' @family \code{knitrContainer} functions
#'
Join <- function(..., list = NULL) {

    if (is.null(list)) list <- list(...)

    # Convert non `knitrContainers` to `knitrContainers`
    list <- lapply(list, function(obj){
            if (!inherits(obj, "knitrContainer")){
                obj <- as.knitrContainer(obj)
            } else {
                obj
            }
        }
    )

    # Merge and return the result

    list %<>% Reduce(f = c) %>% as.knitrContainer

    return(list)
}


#
# #' @rdname Join
# #' @inheritParams base::c
# #'
# #' @method c knitrContainer
# #' @export
# c.knitrContainer <- function(..., recursive = FALSE) {
#
#     list <- list(...)
#
#     # Convert non `knitrContainers` to `knitrContainers`
#     list <- lapply(list, function(obj){
#         if (!inherits(obj, "knitrContainer")){
#             obj <- as.knitrContainer(obj)
#         } else {
#             obj
#         }
#     }
#     )
#
#     # Merge and return the result
#
#     list %<>%
#         Reduce(f = function(...) {c.default(...,
#                                             recursive = recursive)}) %>%
#         as.knitrContainer
#
#     return(list)
# }
GegznaV/knitrContainer documentation built on April 16, 2023, 1:38 p.m.