Resolve String(s) Using a Dictionary
Arguments
- x
vector of character to be resolved or a list of which all elements will be resolved using itself as a "dictionary". A dictionary is a list of
key = value
pairs defining string replacements.- ...
Unnamed arguments are treated as (further) dictionaries. These are merged first to one dictionary before merging further (named)
key = value
pairs.
Examples
file <- system.file("extdata", "dictionary.txt", package = "kwb.utils")
dictionary <- readDictionary(file)
# Resolve the dictionary
resolve(dictionary)
#> $dir.out
#> [1] "/root/example_project/out"
#>
#> $dir.project
#> [1] "/root/example_project"
#>
#> $dir.root
#> [1] "/root"
#>
#> $equation
#> [1] "a = b + c"
#>
#> $file.out
#> [1] "/root/example_project/out/example_file.<extension>"
#>
#> $project
#> [1] "example_project"
#>
# Resolve the dictionary by setting an undefined placeholder
resolve(dictionary, extension = "pdf")
#> $dir.out
#> [1] "/root/example_project/out"
#>
#> $dir.project
#> [1] "/root/example_project"
#>
#> $dir.root
#> [1] "/root"
#>
#> $equation
#> [1] "a = b + c"
#>
#> $file.out
#> [1] "/root/example_project/out/example_file.pdf"
#>
#> $project
#> [1] "example_project"
#>
# Resolve a string
resolve("dir.project", dictionary)
#> [1] "/root/example_project"
# Set a placeholder "on-the-fly"
resolve("file.out", dictionary, extension = "pdf")
#> [1] "/root/example_project/out/example_file.pdf"
# Override a placeholder "on-the-fly"
resolve("dir.project", dictionary, project = "new_project")
#> [1] "/root/new_project"
# Resolve a vector of strings
resolve(c("dir.root", "dir.project"), dictionary, project = "vector")
#> [1] "/root" "/root/vector"