Nothing
#' Package Version
#'
#' \code{p_version} - Determine what version a package is in your library.
#'
#' @rdname p_version
#' @param package Name of package (default returns R version).
#' @seealso \code{\link[utils]{packageDescription}}
#' @keywords package version
#' @export
#' @examples
#' \dontrun{
#' p_ver()
#' p_version()
#' p_ver(pacman)
#' p_version(pacman)
#'
#' p_ver_cran()
#' p_ver_cran(pacman)
#'
#' ## Compare local to CRAN version
#' p_ver(pacman) == p_ver_cran(pacman)
#' p_ver(pacman) > p_ver_cran(pacman)
#'
#' p_ver_diff()
#' p_ver_diff(pacman)
#' }
p_version <-
function(package="R") {
## check if package is an object
if(!object_check(package) || !is.character(package)){
package <- as.character(substitute(package))
}
if (package %in% c("r", "R")){
getRversion()
} else {
utils::packageVersion(package)
}
}
#' @rdname p_version
#' @export
p_ver <- p_version
#' Package Version
#'
#' \code{p_version_cran} - Determine what version a package is on CRAN.
#'
#' @rdname p_version
#' @export
p_version_cran <- function (package = "R") {
if (!object_check(package) || !is.character(package)) {
package <- as.character(substitute(package))
}
if (package %in% c("r", "R")) {
cur_r <- "http://rversions.r-pkg.org/r-release"
info <- paste(scan(file=cur_r, what = "", quiet = TRUE), collapse=" ")
info <- regmatches(info, gregexpr("(version\\s*:\\s*)(.*?)(\\s*,)",
info, perl = TRUE))[[1]]
numeric_version(gsub("(^version[ :]+)|([ ,]+$)", "", info))
} else {
a <- utils::available.packages()
numeric_version(a[rownames(a) %in% package, "Version"])
}
}
#' @rdname p_version
#' @export
p_ver_cran <- p_version_cran
#' Package Version
#'
#' \code{p_version_difference} - Determine version difference between a local
#' package and CRAN.
#'
#' @rdname p_version
#' @export
p_version_diff <-
function (package = "R") {
## check if package is an object
if (!object_check(package) || !is.character(package)) {
package <- as.character(substitute(package))
}
## Get the CRAN version of the package/R
if (package %in% c("r", "R")) {
cur_r <- "http://rversions.r-pkg.org/r-release"
info <- paste(scan(file = cur_r, what = "", quiet = TRUE),
collapse = " ")
info <- regmatches(info, gregexpr("(version\\s*:\\s*)(.*?)(\\s*,)",
info, perl = TRUE))[[1]]
cran <- numeric_version(gsub("(^version[ :]+)|([ ,]+$)", "", info))
} else {
a <- utils::available.packages()
cran <- numeric_version(a[rownames(a) %in% package, "Version"])
}
## Get the Local version of the package/R
if (package %in% c("r", "R")) {
myver <- getRversion()
} else {
myver <- utils::packageVersion(package)
}
## Compare Local/CRAN and generate difference message
if(myver == cran) {
mess <- "Equal to CRAN"
} else {
if(myver > cran) {
mess <- "Ahead of CRAN"
} else {
mess <- "Behind CRAN"
}
}
out <- list(Local = myver, CRAN = cran)
class(out) <- "p_version_diff"
attributes(out)[["message"]] <- mess
attributes(out)[["package"]] <- package
out
}
#' Prints a p_version_diff Object
#'
#' Prints a p_version_diff object.
#'
#' @param x The p_version_diff object.
#' @param \ldots ignored
#' @method print p_version_diff
#' @export
print.p_version_diff <- function(x, ...){
message(sprintf("Local %s is %s", attributes(x)[["package"]], attributes(x)[["message"]]))
message(sprintf("\nLocal: %s", x[["Local"]]))
message(sprintf("CRAN: %s", x[["CRAN"]]))
}
#' @rdname p_version
#' @export
p_ver_diff <- p_version_diff
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.