R/object-defaults.R

Defines functions package_suffix object_defaults.rcclass object_defaults.s4class object_defaults.import object_defaults.package object_defaults.data object_defaults.function object_defaults.default object_defaults

object_defaults <- function(x, block) UseMethod("object_defaults")

#' @export
object_defaults.default <- function(x, block) list()

#' @exportS3Method object_defaults "function"
object_defaults.function <- function(x, block) {
  list(
    roxy_generated_tag(block, "usage", object_usage(x)),
    # Used in process_inherit_params()
    roxy_generated_tag(block, ".formals", names(formals(x$value)))
  )
}

#' @export
object_defaults.s3generic <- object_defaults.function

#' @export
object_defaults.s3method <- object_defaults.function

#' @export
object_defaults.s4generic <- object_defaults.function

#' @export
object_defaults.s4method <- object_defaults.function

#' @export
object_defaults.data <- function(x, block) {
  str_out <- rd(object_format(x$value))

  list(
    roxy_generated_tag(block, "docType", "data"),
    roxy_generated_tag(block, "format", str_out),
    roxy_generated_tag(block, "keywords", "datasets"),
    roxy_generated_tag(block, "usage", object_usage(x))
  )
}

#' @export
object_defaults.package <- function(x, block) {
  desc <- x$value$desc

  logo_path <- file.path(x$value$path, "man", "figures", "logo.png")
  if (file.exists(logo_path)) {
    fig <- "\\if{html}{\\figure{logo.png}{options: style='float: right' alt='logo' width='120'}}\n\n"
  } else {
    fig <- ""
  }

  name <- desc$get_field("Package")
  title <- desc$get_field("Title")

  description <- desc$get_field("Description")
  description <- package_url_parse(description)
  description <- paste0(fig, description)

  seealso <- package_seealso(
    desc$get_field("URL", NULL),
    desc$get_field("BugReports", NULL)
  )
  authors <- package_authors(desc$get_field("Authors@R", NULL))

  list(
    roxy_generated_tag(block, "docType", "package"),
    roxy_generated_tag(block, "name", package_suffix(name)),
    # "NULL" prevents addition of default aliases, see also #202
    roxy_generated_tag(block, "aliases", paste("NULL", name, package_suffix(name))),
    roxy_generated_tag(block, "title", paste0(name, ": ", title)),
    roxy_generated_tag(block, "description", description),
    roxy_generated_tag(block, "seealso", seealso),
    roxy_generated_tag(block, "author", authors)
  )
}

#' @export
object_defaults.import <- function(x, block) {
  list(
    roxy_generated_tag(block, "docType", "import"),
    roxy_generated_tag(block, "name", "reexports"),
    roxy_generated_tag(block, "keywords", "internal"),
    roxy_generated_tag(block, "title", "Objects exported from other packages"),
    roxy_generated_tag(block, ".reexport", list(pkg = x$value$pkg, fun = x$value$fun))
  )
}

#' @export
object_defaults.s4class <- function(x, block) {
  list(
    roxy_generated_tag(block, "docType", "class")
  )
}

#' @export
object_defaults.rcclass <- function(x, block) {
  list(
    roxy_generated_tag(block, "docType", "class"),
    if (!is.null(x$methods))
      roxy_generated_tag(block, ".methods", x$methods)
  )
}

# Helpers -----------------------------------------------------------------

package_suffix <- function(name) {
  paste0(name, "-package")
}

Try the roxygen2 package in your browser

Any scripts or data that you put into this service are public.

roxygen2 documentation built on Dec. 9, 2022, 1:09 a.m.