diff --git a/NAMESPACE b/NAMESPACE index c5ff88f..514c173 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -67,6 +67,7 @@ exportMethods(frequency) exportMethods(get_calendar) exportMethods(image) exportMethods(intervals) +exportMethods(is_calendar) exportMethods(is_gregorian) exportMethods(is_julian) exportMethods(overlap) diff --git a/R/AllGenerics.R b/R/AllGenerics.R index 52fcb97..1229a90 100644 --- a/R/AllGenerics.R +++ b/R/AllGenerics.R @@ -179,22 +179,24 @@ setGeneric( #' Test inheritance relationships between an object and a calendar class. #' @param object Any \R object. #' @return -#' A [`logical`] vector. +#' A [`logical`] scalar. #' @author N. Frerebeau #' @docType methods #' @family calendar tools -#' @name is -#' @rdname is -NULL +#' @aliases is_calendar-method +setGeneric( + name = "is_calendar", + def = function(object) standardGeneric("is_calendar") +) -#' @rdname is +#' @rdname is_calendar #' @aliases is_gregorian-method setGeneric( name = "is_gregorian", def = function(object) standardGeneric("is_gregorian") ) -#' @rdname is +#' @rdname is_calendar #' @aliases is_julian-method setGeneric( name = "is_julian", diff --git a/R/calendar-gregorian.R b/R/calendar-gregorian.R index 666c2c5..498edf1 100644 --- a/R/calendar-gregorian.R +++ b/R/calendar-gregorian.R @@ -4,7 +4,7 @@ NULL # Gregorian calendar =========================================================== #' @export -#' @rdname is +#' @rdname is_calendar #' @aliases is_gregorian,ANY-method setMethod( f = "is_gregorian", diff --git a/R/calendar-julian.R b/R/calendar-julian.R index b6165ef..a790adb 100644 --- a/R/calendar-julian.R +++ b/R/calendar-julian.R @@ -4,7 +4,7 @@ NULL # Julian calendar ============================================================== #' @export -#' @rdname is +#' @rdname is_calendar #' @aliases is_julian,ANY-method setMethod( f = "is_julian", diff --git a/R/calendar.R b/R/calendar.R index fd020ba..44929a6 100644 --- a/R/calendar.R +++ b/R/calendar.R @@ -132,6 +132,18 @@ setMethod( } ) +# Predicates =================================================================== +#' @export +#' @rdname is_calendar +#' @aliases is_calendar,ANY-method +setMethod( + f = "is_calendar", + signature = "ANY", + definition = function(object) { + methods::is(object, "TimeScale") + } +) + # Mutators ===================================================================== ## Getters --------------------------------------------------------------------- #' @export diff --git a/inst/tinytest/test_calendar.R b/inst/tinytest/test_calendar.R index f0916ff..f7e5869 100644 --- a/inst/tinytest/test_calendar.R +++ b/inst/tinytest/test_calendar.R @@ -16,6 +16,7 @@ expect_error(calendar("XXX"), "Unknown calendar") # Gregorian calendar =========================================================== G <- calendar("BP") +expect_true(is_calendar(G)) expect_true(is_gregorian(G)) expect_false(is_julian(G)) @@ -30,6 +31,7 @@ expect_identical(calendar_year(G), 365.2425) # Julian calendar ============================================================== J <- calendar("julian") +expect_true(is_calendar(J)) expect_true(is_julian(J)) expect_false(is_gregorian(J)) diff --git a/man/calendar.Rd b/man/calendar.Rd index 9dc13db..066ea2b 100644 --- a/man/calendar.Rd +++ b/man/calendar.Rd @@ -55,7 +55,7 @@ Other calendar tools: \code{\link{convert}()}, \code{\link{get_calendar}()}, \code{\link{gregorian}}, -\code{\link{is}()}, +\code{\link{is_calendar}()}, \code{\link{julian}()} } \author{ diff --git a/man/calendar_get.Rd b/man/calendar_get.Rd index 3a871fe..ff99a8d 100644 --- a/man/calendar_get.Rd +++ b/man/calendar_get.Rd @@ -100,7 +100,7 @@ Other calendar tools: \code{\link{convert}()}, \code{\link{get_calendar}()}, \code{\link{gregorian}}, -\code{\link{is}()}, +\code{\link{is_calendar}()}, \code{\link{julian}()} } \author{ diff --git a/man/convert.Rd b/man/convert.Rd index e47cf3a..63623d4 100644 --- a/man/convert.Rd +++ b/man/convert.Rd @@ -47,7 +47,7 @@ Other calendar tools: \code{\link{calendar_get}}, \code{\link{get_calendar}()}, \code{\link{gregorian}}, -\code{\link{is}()}, +\code{\link{is_calendar}()}, \code{\link{julian}()} } \author{ diff --git a/man/get_calendar.Rd b/man/get_calendar.Rd index a995f1d..21336d8 100644 --- a/man/get_calendar.Rd +++ b/man/get_calendar.Rd @@ -51,7 +51,7 @@ Other calendar tools: \code{\link{calendar_get}}, \code{\link{convert}()}, \code{\link{gregorian}}, -\code{\link{is}()}, +\code{\link{is_calendar}()}, \code{\link{julian}()} } \author{ diff --git a/man/gregorian.Rd b/man/gregorian.Rd index bfa65a0..6681af3 100644 --- a/man/gregorian.Rd +++ b/man/gregorian.Rd @@ -51,7 +51,7 @@ Other calendar tools: \code{\link{calendar_get}}, \code{\link{convert}()}, \code{\link{get_calendar}()}, -\code{\link{is}()}, +\code{\link{is_calendar}()}, \code{\link{julian}()} } \author{ diff --git a/man/is.Rd b/man/is_calendar.Rd similarity index 78% rename from man/is.Rd rename to man/is_calendar.Rd index 124511a..79c2a1d 100644 --- a/man/is.Rd +++ b/man/is_calendar.Rd @@ -1,17 +1,21 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/AllGenerics.R, R/calendar-gregorian.R, -% R/calendar-julian.R +% R/calendar-julian.R, R/calendar.R \docType{methods} -\name{is} -\alias{is} +\name{is_calendar} +\alias{is_calendar} +\alias{is_calendar-method} \alias{is_gregorian} \alias{is_gregorian-method} \alias{is_julian} \alias{is_julian-method} \alias{is_gregorian,ANY-method} \alias{is_julian,ANY-method} +\alias{is_calendar,ANY-method} \title{Is an Object a Calendar?} \usage{ +is_calendar(object) + is_gregorian(object) is_julian(object) @@ -19,12 +23,14 @@ is_julian(object) \S4method{is_gregorian}{ANY}(object) \S4method{is_julian}{ANY}(object) + +\S4method{is_calendar}{ANY}(object) } \arguments{ \item{object}{Any \R object.} } \value{ -A \code{\link{logical}} vector. +A \code{\link{logical}} scalar. } \description{ Test inheritance relationships between an object and a calendar class. diff --git a/man/julian.Rd b/man/julian.Rd index 7a17dff..3a09862 100644 --- a/man/julian.Rd +++ b/man/julian.Rd @@ -37,7 +37,7 @@ Other calendar tools: \code{\link{convert}()}, \code{\link{get_calendar}()}, \code{\link{gregorian}}, -\code{\link{is}()} +\code{\link{is_calendar}()} } \author{ N. Frerebeau