diff --git a/NAMESPACE b/NAMESPACE index c5ff88f..e4bf812 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -39,6 +39,9 @@ export(fixed_to_BP) export(fixed_to_CE) export(fixed_to_b2k) export(fixed_to_julian) +export(is_calendar) +export(is_gregorian) +export(is_julian) export(year_axis) exportClasses(RataDie) exportClasses(TimeIntervals) @@ -67,8 +70,6 @@ exportMethods(frequency) exportMethods(get_calendar) exportMethods(image) exportMethods(intervals) -exportMethods(is_gregorian) -exportMethods(is_julian) exportMethods(overlap) exportMethods(plot) exportMethods(pretty) diff --git a/R/AllGenerics.R b/R/AllGenerics.R index 52fcb97..14a6c70 100644 --- a/R/AllGenerics.R +++ b/R/AllGenerics.R @@ -174,33 +174,6 @@ setGeneric( valueClass = "TimeScale" ) -#' Is an Object a Calendar? -#' -#' Test inheritance relationships between an object and a calendar class. -#' @param object Any \R object. -#' @return -#' A [`logical`] vector. -#' @author N. Frerebeau -#' @docType methods -#' @family calendar tools -#' @name is -#' @rdname is -NULL - -#' @rdname is -#' @aliases is_gregorian-method -setGeneric( - name = "is_gregorian", - def = function(object) standardGeneric("is_gregorian") -) - -#' @rdname is -#' @aliases is_julian-method -setGeneric( - name = "is_julian", - def = function(object) standardGeneric("is_julian") -) - #' Calendar Parameters #' #' @param object A [`TimeScale-class`] object. diff --git a/R/calendar-gregorian.R b/R/calendar-gregorian.R index 666c2c5..53ba4c8 100644 --- a/R/calendar-gregorian.R +++ b/R/calendar-gregorian.R @@ -2,18 +2,6 @@ #' @include AllGenerics.R NULL -# Gregorian calendar =========================================================== -#' @export -#' @rdname is -#' @aliases is_gregorian,ANY-method -setMethod( - f = "is_gregorian", - signature = "ANY", - definition = function(object) { - methods::is(object, "GregorianCalendar") - } -) - # Fixed from Gregorian ========================================================= #' @export #' @rdname fixed diff --git a/R/calendar-julian.R b/R/calendar-julian.R index b6165ef..adc5ea4 100644 --- a/R/calendar-julian.R +++ b/R/calendar-julian.R @@ -2,18 +2,6 @@ #' @include AllGenerics.R NULL -# Julian calendar ============================================================== -#' @export -#' @rdname is -#' @aliases is_julian,ANY-method -setMethod( - f = "is_julian", - signature = "ANY", - definition = function(object) { - methods::is(object, "JulianCalendar") - } -) - # Fixed from Julian ============================================================ #' @export #' @rdname fixed diff --git a/R/calendar.R b/R/calendar.R index fd020ba..5f14785 100644 --- a/R/calendar.R +++ b/R/calendar.R @@ -132,6 +132,33 @@ setMethod( } ) +# Predicates =================================================================== +#' Is an Object a Calendar? +#' +#' Test inheritance relationships between an object and a calendar class. +#' @param object Any \R object. +#' @return +#' A [`logical`] scalar. +#' @author N. Frerebeau +#' @docType methods +#' @family calendar tools +#' @export +is_calendar <- function(object) { + methods::is(object, "TimeScale") +} + +#' @export +#' @rdname is_calendar +is_gregorian <- function(object) { + methods::is(object, "GregorianCalendar") +} + +#' @export +#' @rdname is_calendar +is_julian <- function(object) { + methods::is(object, "JulianCalendar") +} + # 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 62% rename from man/is.Rd rename to man/is_calendar.Rd index 124511a..cefe140 100644 --- a/man/is.Rd +++ b/man/is_calendar.Rd @@ -1,30 +1,23 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/AllGenerics.R, R/calendar-gregorian.R, -% R/calendar-julian.R +% Please edit documentation in R/calendar.R \docType{methods} -\name{is} -\alias{is} +\name{is_calendar} +\alias{is_calendar} \alias{is_gregorian} -\alias{is_gregorian-method} \alias{is_julian} -\alias{is_julian-method} -\alias{is_gregorian,ANY-method} -\alias{is_julian,ANY-method} \title{Is an Object a Calendar?} \usage{ +is_calendar(object) + is_gregorian(object) is_julian(object) - -\S4method{is_gregorian}{ANY}(object) - -\S4method{is_julian}{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