From 36f7efcffef58f04c5a0718dc276f7fc00ea102e Mon Sep 17 00:00:00 2001 From: Bill Denney Date: Wed, 1 Feb 2017 13:36:07 -0500 Subject: [PATCH] Add knit_print method for sessionInfo --- DESCRIPTION | 4 ++-- NAMESPACE | 1 + R/sessionInfo.R | 22 ++++++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 R/sessionInfo.R diff --git a/DESCRIPTION b/DESCRIPTION index 34baa3f..432d7f4 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: printr Type: Package Title: Automatically Print R Objects According to knitr Output Format -Version: 0.0.6 -Date: 2014-09-04 +Version: 0.0.7 +Date: 2016-02-01 Author: Yihui Xie Maintainer: Yihui Xie Description: Extends the S3 generic function knit_print() in knitr diff --git a/NAMESPACE b/NAMESPACE index 0fabc29..02c3655 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -6,6 +6,7 @@ S3method(knit_print,matrix) S3method(knit_print,packageIQR) S3method(knit_print,packageInfo) S3method(knit_print,table) +S3method(knit_print,sessionInfo) importFrom(knitr,asis_output) importFrom(knitr,kable) importFrom(knitr,knit_print) diff --git a/R/sessionInfo.R b/R/sessionInfo.R new file mode 100644 index 0000000..faff454 --- /dev/null +++ b/R/sessionInfo.R @@ -0,0 +1,22 @@ +#' @export +knit_print.sessionInfo <- function(x, ...) { + if (missing(x)) + x <- sessionInfo() + packagename <- function(x) { + sha <- ifelse("GithubSHA1" %in% names(x), + paste(", GithubSHA1:", x$GithubSHA1), + "") + sprintf("%s(%s%s)", x$Package, x$Version, sha) + } + otherpkg <- sapply(x$otherPkgs, FUN=packagename) + namespacepkg <- sapply(x$loadedOnly, FUN=packagename) + ret <- + c(paste("*", c(x$R.version$version.string, + paste("Platform:", x$platform))), + paste("* Locale:", paste(strsplit(x$locale, ";")[[1]], collapse=", ")), + "* Packages", + paste(" * Base:", paste(x$basePkgs, collapse=", ")), + paste(" * Attached:", paste(otherpkg, collapse="; ")), + paste(" * Namespaces (not attached):", paste(namespacepkg, collapse="; "))) + knitr::asis_output(paste(ret, collapse="\n")) +}