readDescription <- function(basedir){
dfile <- file.path(basedir, "DESCRIPTION")
if(!file.exists(dfile)){
return(NULL)
}
#
des <- read.dcf(dfile, all = TRUE)
name <- des[["Package"]]
author <- des[["Author"]]
license <- des[["License"]]
version <- versionScheme(des[["Version"]])
title <- des[["Title"]]
description <- des[["Description"]]
# Extract the number of dependencies
n.depends <- descValue("Depends", des)
n.imports <- descValue("Imports", des)
n.suggests <- descValue("Suggests", des)
ans <- c(name = name,
author = author,
license = license,
version = version,
title = title,
description = description,
n.depends = n.depends,
n.imports = n.imports,
n.suggests = n.suggests)
ans
}
versionScheme <- function(version){
patterns <- list('x.x' = "^\\d+\\.\\d+$",
'x.x.x' = "^\\d+\\.\\d+\\.\\d+$",
'x.x.x.x' = "^\\d+\\.\\d+\\.\\d+\\.\\d+$",
'x.x-x' = "^\\d+\\.\\d+\\-\\d+$",
'x.x.x-x' = "^\\d+\\.\\d+\\.\\d+-\\d+$")
out <- names(which(sapply(patterns, grepl, version)))
if(length(out) > 1 | length(out) == 0){
out <- "other"
}
out
}
descValue <- function(value, des){
if(! value %in% names(des)){
return(0)
}
val <- des[[value]]
val <- gsub("\n", " ", val)
val <- strsplit(val, ",")[[1]]
return(length(val))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.