Package uniset provides an easily accessible, user-friendly text file as settings-file for your R-package.

## Description

Package uniset enables any package (the ‘target package’) to provide its users an easily accessible, user-friendly and human readable text file where key=value pairs (used by functions defined in the target package) can be saved.

This settings file lives in a location defined by the user of the target package, and its user-defined values remain unchanged even when the author of the target package is introducing or deleting keys, or when the target package is updated or re-installed.

In order to enable the target package to make use of the functionality offered by package uniset, three files have to be exported by uniset and be placed into the target package.

## Installation

Install release version from CRAN via

install.packages("uniset")

install_github(repo="bpollner/uniset", ref="master")

## Set up example

We assume that we want to enable a package called dogPack to use the dynamic settings file provided by uniset. In this example, dogPack is the target package, and we want it to live at ~/desktop. First copy the example folder dogPack to your desktop:

library(uniset)
to <- path.expand("~/desktop")
dsource <- paste0(path.package("uniset"), "/examples/dogPack")
file.copy(dsource, to, recursive = TRUE)
#> [1] TRUE

## Generate Files

There are two ways to set up a target package (in our example the package called dogPack) to make use of uniset:

### A) Export and Move Files

The package name, the name of the setup-function and a location have to be specified, then a call to uniset_getFiles() creates a folder containing the three required files:

setupFunc <- "dogPack_demo_setup" # the name of the setup-function in our example
uniset_getFiles("dogPack", setupFunc, to)
#> Three files called
#> 'uniset_globals.R'
#> 'dogPack_settings.R'
#> 'uniset_functions.R'
#> have been written to the folder
#> '/Users/bernhard/desktop/UnisetFiles_R-pkg_'dogPack''
#> Please move these three files into their resp. target folders
#> (see ?uniset, or have a look at the content of the three generated files)
#>
#> Use the function
#> 'autoUpS()' or 'getstn()'
#> inside a function defined in the package 'dogPack' to get the list holding the key=value pairs.

Move files:

• ‘dogPack_settings.R’ into the ‘inst’ folder (create one if not already done) of dogPack.

• ‘uniset_globals’ and ‘uniset_functions.R’ into the ‘R’ folder of dogPack.

### B) Write files directly to target package

A call to uniset_copyFilesToPackage() copies the three required files directly into the target package – called dogPack in our example.

path <- paste0(to, "/dogPack")
setupFunc <- "dogPack_demo_setup" # the name of the setup-function in our example
uniset_copyFilesToPackage(path, setupFunc)
#> A file called 'dogPack_settings.R' has been written into the 'inst' folder,
#> two files called 'uniset_globals.R' and 'uniset_functions.R'
#> have been written into the 'R' folder of the package 'dogPack' at
#> '/Users/bernhard/desktop/dogPack'.
#>
#> Use the function
#> 'autoUpS()' or 'getstn()'
#> inside a function defined in the package 'dogPack' to get the list holding the key=value pairs.

Please review the file ‘dogPackFunc.R’ in the folder ‘dogPack/R’ that was copied to path.expand("~/desktop") and look at the code of the practical examples that will be executed below.

Go on and read the extended description to deepen your understanding of how uniset works.