R/dp_add_writer.R

Defines functions dp_add_writer

Documented in dp_add_writer

#' Add a writer function for a specific format
#'
#' @param format the data format read by the writer Should be a length 1 character vector.
#' @param writer the writer function. See details.
#' 
#' @details
#' Adds a writer for a given format. The writer is added to a list of writers
#' referenced by the format. The writer function should accept 'data' with
#' the data as its first argument, 'resource_name' the name of the resource to
#' which the data set belongs, 'datapackage' that datapackage to which the data
#' should be written.
#'
#' Note that adding a writer for an existing format will overwrite the existing
#' writer
#'
#' @return
#' Does not return anything (\code{invisible(NULL)}). 
#'
#' @examples
#' # Add a very simple writer for json
#' json_writer <- function(data, resource_name, datapackage, ...) {
#'   dataresource <- dp_resource(datapackage, resource_name)
#'   path <- dp_path(dataresource, full_path = TRUE)
#'   jsonlite::write_json(data, path)
#' }
#'
#' dp_add_writer("json", json_writer)
#' 
#' @export
dp_add_writer <- function(format, writer) {
  stopifnot(is.character(format), length(format) == 1)
  stopifnot(is.function(writer))
  readers$writers[[format]] <- writer
  invisible(NULL)
}

# TODO: same type of arguments as reader?

Try the datapackage package in your browser

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

datapackage documentation built on June 8, 2025, 1:25 p.m.