R/new.R

Defines functions new_tbl_time new_grouped_tbl_time

# New tbl_time creation --------------------------------------------------------
# Currently for internal use, may later be exported when we have more
# packages

new_tbl_time <- function(x, index_quo, index_time_zone, ..., subclass = NULL) {

  stopifnot(is.data.frame(x))
  stopifnot(rlang::is_quosure(index_quo))
  stopifnot(is.character(index_time_zone))
  
  # Subclass checks
  subclass <- c(subclass, "tbl_time")
  if("grouped_tbl_time" %in% subclass) {
    subclass <- c(subclass, "grouped_df")
  }

  tibble::new_tibble(
    x,
    index_quo       = index_quo,
    index_time_zone = index_time_zone,
    subclass        = subclass
  )

}

new_grouped_tbl_time <- function(x, index_quo, index_time_zone, ..., subclass = NULL) {
  stopifnot(inherits(x, "grouped_df"))

  new_tbl_time(
    x,
    index_quo       = index_quo,
    index_time_zone = index_time_zone,
    subclass        = c(subclass, "grouped_tbl_time")
  )
}
DavisVaughan/tibbletime3 documentation built on May 28, 2019, 12:25 p.m.