Skip to content

Commit f58dba7

Browse files
authored
Merge pull request #24 from KWB-R/dev
Dev
2 parents c9f447a + 7a94710 commit f58dba7

34 files changed

+550
-160
lines changed

.Rbuildignore

+1
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ _pkgdown.yaml
1313
^LICENSE\.md$
1414
.gitlab-ci.yml
1515
^\.travis\.yml$
16+
^\.github$

.github/workflows/R-CMD-check.yaml

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
on:
2+
push:
3+
branches:
4+
- master
5+
- main
6+
- dev
7+
pull_request:
8+
branches:
9+
- master
10+
- main
11+
- dev
12+
13+
name: R-CMD-check
14+
15+
jobs:
16+
R-CMD-check:
17+
runs-on: ${{ matrix.config.os }}
18+
19+
name: ${{ matrix.config.os }} (${{ matrix.config.r }})
20+
21+
strategy:
22+
fail-fast: false
23+
matrix:
24+
config:
25+
- {os: macOS-latest, r: 'release'}
26+
- {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"}
27+
- {os: windows-latest, r: 'devel'}
28+
- {os: windows-latest, r: 'oldrel'}
29+
- {os: windows-latest, r: 'release'}
30+
31+
env:
32+
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
33+
RSPM: ${{ matrix.config.rspm }}
34+
35+
steps:
36+
- uses: actions/checkout@v2
37+
38+
- uses: r-lib/actions/setup-r@master
39+
with:
40+
r-version: ${{ matrix.config.r }}
41+
42+
- uses: r-lib/actions/setup-pandoc@master
43+
44+
- name: Query dependencies
45+
run: |
46+
install.packages('remotes')
47+
saveRDS(remotes::dev_package_deps(dependencies = TRUE), "depends.Rds", version = 2)
48+
shell: Rscript {0}
49+
50+
- name: Cache R packages
51+
if: runner.os != 'Windows'
52+
uses: actions/cache@v1
53+
with:
54+
path: ${{ env.R_LIBS_USER }}
55+
key: ${{ runner.os }}-r-${{ matrix.config.r }}-3-${{ hashFiles('depends.Rds') }}
56+
restore-keys: ${{ runner.os }}-r-${{ matrix.config.r }}-3-
57+
58+
- name: Install system dependencies
59+
if: runner.os == 'Linux'
60+
env:
61+
RHUB_PLATFORM: linux-x86_64-ubuntu-gcc
62+
run: |
63+
Rscript -e "remotes::install_github('r-hub/sysreqs')"
64+
sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))")
65+
sudo -s eval "$sysreqs"
66+
- name: Install dependencies
67+
run: |
68+
remotes::install_deps(dependencies = TRUE)
69+
remotes::install_cran("rcmdcheck")
70+
shell: Rscript {0}
71+
72+
- name: Check
73+
run: rcmdcheck::rcmdcheck(args = "--no-manual", error_on = "warning", check_dir = "check")
74+
shell: Rscript {0}
75+
76+
- name: Upload check results
77+
if: failure()
78+
uses: actions/upload-artifact@master
79+
with:
80+
name: ${{ runner.os }}-r${{ matrix.config.r }}-results
81+
path: check

.github/workflows/pkgdown.yaml

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
on:
2+
push:
3+
branches:
4+
- main
5+
- master
6+
- dev
7+
8+
name: pkgdown
9+
10+
jobs:
11+
pkgdown:
12+
runs-on: macOS-latest
13+
env:
14+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
15+
steps:
16+
- uses: actions/checkout@v2
17+
18+
- uses: r-lib/actions/setup-r@master
19+
20+
- uses: r-lib/actions/setup-pandoc@master
21+
22+
- name: Query dependencies
23+
run: |
24+
install.packages('remotes')
25+
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2)
26+
writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version")
27+
shell: Rscript {0}
28+
29+
- name: Cache R packages
30+
uses: actions/cache@v2
31+
with:
32+
path: ${{ env.R_LIBS_USER }}
33+
key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }}
34+
restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-
35+
36+
- name: Install dependencies
37+
run: |
38+
remotes::install_deps(dependencies = TRUE)
39+
install.packages("pkgdown", type = "binary")
40+
shell: Rscript {0}
41+
42+
- name: Install package
43+
run: R CMD INSTALL .
44+
45+
- name: Deploy package
46+
run: |
47+
git config --local user.email "[email protected]"
48+
git config --local user.name "GitHub Actions"
49+
Rscript -e 'pkgdown::deploy_to_branch(new_process = FALSE)'

.github/workflows/pr-commands.yaml

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
on:
2+
issue_comment:
3+
types: [created]
4+
name: Commands
5+
jobs:
6+
document:
7+
if: startsWith(github.event.comment.body, '/document')
8+
name: document
9+
runs-on: macOS-latest
10+
env:
11+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
12+
steps:
13+
- uses: actions/checkout@v2
14+
- uses: r-lib/actions/pr-fetch@master
15+
with:
16+
repo-token: ${{ secrets.GITHUB_TOKEN }}
17+
- uses: r-lib/actions/setup-r@master
18+
- name: Install dependencies
19+
run: Rscript -e 'install.packages(c("remotes", "roxygen2"))' -e 'remotes::install_deps(dependencies = TRUE)'
20+
- name: Document
21+
run: Rscript -e 'roxygen2::roxygenise()'
22+
- name: commit
23+
run: |
24+
git add man/\* NAMESPACE
25+
git commit -m 'Document'
26+
- uses: r-lib/actions/pr-push@master
27+
with:
28+
repo-token: ${{ secrets.GITHUB_TOKEN }}
29+
style:
30+
if: startsWith(github.event.comment.body, '/style')
31+
name: style
32+
runs-on: macOS-latest
33+
env:
34+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
35+
steps:
36+
- uses: actions/checkout@v2
37+
- uses: r-lib/actions/pr-fetch@master
38+
with:
39+
repo-token: ${{ secrets.GITHUB_TOKEN }}
40+
- uses: r-lib/actions/setup-r@master
41+
- name: Install dependencies
42+
run: Rscript -e 'install.packages("styler")'
43+
- name: Style
44+
run: Rscript -e 'styler::style_pkg()'
45+
- name: commit
46+
run: |
47+
git add \*.R
48+
git commit -m 'Style'
49+
- uses: r-lib/actions/pr-push@master
50+
with:
51+
repo-token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/test-coverage.yaml

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
on:
2+
push:
3+
branches:
4+
- master
5+
- main
6+
pull_request:
7+
branches:
8+
- master
9+
- main
10+
11+
name: test-coverage
12+
13+
jobs:
14+
test-coverage:
15+
runs-on: macOS-latest
16+
env:
17+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
18+
steps:
19+
- uses: actions/checkout@v2
20+
21+
- uses: r-lib/actions/setup-r@master
22+
23+
- uses: r-lib/actions/setup-pandoc@master
24+
25+
- name: Query dependencies
26+
run: |
27+
install.packages('remotes')
28+
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2)
29+
writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version")
30+
shell: Rscript {0}
31+
32+
- name: Cache R packages
33+
uses: actions/cache@v1
34+
with:
35+
path: ${{ env.R_LIBS_USER }}
36+
key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }}
37+
restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-
38+
39+
- name: Install dependencies
40+
run: |
41+
install.packages(c("remotes"))
42+
remotes::install_deps(dependencies = TRUE)
43+
remotes::install_cran("covr")
44+
shell: Rscript {0}
45+
46+
- name: Test coverage
47+
run: covr::codecov()
48+
shell: Rscript {0}

.travis.yml

-31
This file was deleted.

DESCRIPTION

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: kwb.utils
22
Title: General Utility Functions Developed at KWB
3-
Version: 0.7.0
3+
Version: 0.8.0
44
Authors@R:
55
c(person(given = "Hauke",
66
family = "Sonnenberg",
@@ -9,7 +9,7 @@ Authors@R:
99
comment = c(ORCID = "0000-0001-9134-2871")),
1010
person(given = "Michael",
1111
family = "Rustler",
12-
role = c("ctb"),
12+
role = "ctb",
1313
email = "[email protected]",
1414
comment = c(ORCID = "0000-0003-0647-7726")),
1515
person(given = "Kompetenzzentrum Wasser Berlin gGmbH",

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2014-2019 Kompetenzzentrum Wasser Berlin gGmbH (KWB)
3+
Copyright (c) 2014-2021 Kompetenzzentrum Wasser Berlin gGmbH (KWB)
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

LICENSE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# MIT License
22

3-
Copyright (c) 2014-2019 Kompetenzzentrum Wasser Berlin gGmbH (KWB)
3+
Copyright (c) 2014-2021 Kompetenzzentrum Wasser Berlin gGmbH (KWB)
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

NAMESPACE

+2
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ export(listToDepth)
153153
export(loadObject)
154154
export(makeUnique)
155155
export(matchesCriteria)
156+
export(matrixToDataFrame)
156157
export(mergeAll)
157158
export(mergeLists)
158159
export(mergeNamedArrays)
@@ -190,6 +191,7 @@ export(readArglists)
190191
export(readCsvInputFile)
191192
export(readDictionaries)
192193
export(readDictionary)
194+
export(readLinesWithEncoding)
193195
export(readPackageFile)
194196
export(recursiveNames)
195197
export(recycle)

NEWS.md

+16
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
# Current
2+
3+
# [kwb.utils 0.8.0](https://github.com/KWB-R/kwb.utils/releases/tag/v0.8.0) <small>2021-02-19</small>
4+
5+
* add: matrixToDataFrame()
6+
* add (private): get_cache_dir(), set_cache_dir()
7+
* add: readLinesWithEncoding(), moved from fakin.path.app::read_lines()
8+
* get_cached(): add argument "dbg"; return NULL if file does not exist
9+
* lastElement(): do not use tail() for lists, use x[[length(x)]] instead
10+
* orderBy(): allow to order by multiple columns
11+
* preparePdf(): set paper to "special" if width or height are set
12+
* readDictionary(): add arguments "fileEncoding", "...", pass on to
13+
readLinesWithEncoding()
14+
* writeDictionary(): check "file" argument. Do not check the file path unless
15+
"file" is of class character (and not a connection)
16+
117
# [kwb.utils 0.7.0](https://github.com/KWB-R/kwb.utils/releases/tag/v0.7.0) <small>2020-07-31</small>
218

319
* new functions: backspace(), createAccessor(), createStorage(), left(),

R/cache.R

+21-7
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,22 @@ clear_cache <- function()
2626
}
2727

2828
# get_cached -------------------------------------------------------------------
29-
get_cached <- function(name)
29+
get_cached <- function(name, dbg = TRUE)
3030
{
31-
if (file.exists(file <- get_cached_file(name))) {
32-
loadObject(file, "x")
33-
} else {
34-
NULL
31+
file <- get_cached_file(name)
32+
33+
if (! file.exists(file)) {
34+
return(NULL)
3535
}
36+
37+
loadObject(file, "x", dbg = dbg)
3638
}
3739

3840
# get_cached_file --------------------------------------------------------------
3941
get_cached_file <- function(name = "")
4042
{
41-
cache_dir <- file.path(tempdir(), "cache")
42-
43+
cache_dir <- get_cache_dir()
44+
4345
createDirectory(cache_dir, dbg = FALSE)
4446

4547
if (name == "") {
@@ -49,6 +51,18 @@ get_cached_file <- function(name = "")
4951
file.path(cache_dir, paste0(name, ".RData"))
5052
}
5153

54+
# get_cache_dir ----------------------------------------------------------------
55+
get_cache_dir <- function()
56+
{
57+
Sys.getenv("KWB_UTILS_CACHE_DIR", file.path(tempdir(), "cache"))
58+
}
59+
60+
# set_cache_dir ----------------------------------------------------------------
61+
set_cache_dir <- function(path)
62+
{
63+
Sys.setenv(KWB_UTILS_CACHE_DIR = path)
64+
}
65+
5266
# run_cached -------------------------------------------------------------------
5367
run_cached <- function(name, expr)
5468
{

0 commit comments

Comments
 (0)