| cff_create {cffr} | R Documentation |
Create a cff object from several sources
Description
Create a full and possibly valid cff object from a given source. This
object can be written to a *.cff file with cff_write(),
see Examples.
Most of the heavy lifting of cffr is done via this function.
Usage
cff_create(
x,
keys = list(),
cff_version = "1.2.0",
gh_keywords = TRUE,
dependencies = TRUE,
authors_roles = c("aut", "cre")
)
Arguments
x |
The source that would be used for generating
the
|
keys |
List of additional keys to add to the |
cff_version |
The Citation File Format schema version that the
|
gh_keywords |
Logical |
dependencies |
Logical |
authors_roles |
Roles to be considered as authors of the package when
generating the |
Details
If x is a path to a DESCRIPTION file or inst/CITATION, is not present
on your package, cffr would auto-generate a preferred-citation
key using the information provided on that file.
By default, only persons whose role in the DESCRIPTION file of the package
is author ("aut") or maintainer ("cre") are considered to be authors
of the package. The default setting can be controlled via the authors_roles
parameter. See Details on person() to get additional insights
on person roles.
Value
A cff object.
See Also
Guide to Citation File Format schema version 1.2.0.
-
cff_modify()as the recommended way to modify acffobject. -
cff_write()for creating a CFF file. -
vignette("cffr", "cffr")shows an introduction on how manipulatecffobjects. -
vignette("crosswalk", package = "cffr")provides details on how the metadata of a package is mapped to produce acffobject.
Other core functions of cffr:
cff(),
cff_modify(),
cff_validate()
Examples
# Installed package
cff_create("jsonlite")
# Demo file
demo_file <- system.file("examples/DESCRIPTION_basic", package = "cffr")
cff_create(demo_file)
# Add additional keys
newkeys <- list(
message = "This overwrites fields",
abstract = "New abstract",
keywords = c("A", "new", "list", "of", "keywords"),
authors = as_cff_person("New author")
)
cff_create(demo_file, keys = newkeys)
# Update a field on a list - i,e: authors, contacts, etc.
# We are adding a new contact here
old <- cff_create(demo_file)
new_contact <- append(
old$contact,
as_cff_person(person(
given = "I am",
family = "New Contact"
))
)
cff_create(demo_file, keys = list("contact" = new_contact))