Skip to content

Commit ce8c76d

Browse files
committed
feat: use abort for checks
1 parent 31e2708 commit ce8c76d

File tree

3 files changed

+26
-8
lines changed

3 files changed

+26
-8
lines changed

.Rbuildignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,6 @@
1313
^\.github$
1414
^\.bumpversion\.cfg$
1515
^\.editorconfig$
16+
^\.lintr$
17+
^\Makefile$
18+

DESCRIPTION

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ Imports:
2323
httr,
2424
jsonlite,
2525
readr,
26-
MMWRweek
26+
MMWRweek,
27+
rlang
2728
RoxygenNote: 7.1.1
2829
Suggests:
2930
knitr,

R/check.R

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ check_string_param <- function(name, value, required = TRUE) {
44
!(!is.null(value) &&
55
is.character(value))) ||
66
(!required && !(is.null(value) || is.character(value)))) {
7-
stop(paste0("argument ", name, " is not a string"))
7+
rlang::abort(paste0("argument ", name, " is not a string"),
8+
name = name, value = value, class = "invalid_argument"
9+
)
810
}
911
}
1012

@@ -14,7 +16,9 @@ check_int_param <- function(name, value, required = TRUE) {
1416
!(!is.null(value) &&
1517
is.numeric(value))) ||
1618
(!required && !(is.null(value) || is.numeric(value)))) {
17-
stop(paste0("argument ", name, " is not a number"))
19+
rlang::abort(paste0("argument ", name, " is not a number"),
20+
name = name, value = value, class = "invalid_argument"
21+
)
1822
}
1923
}
2024

@@ -32,22 +36,28 @@ check_single_epirange_param <-
3236
!(!is.null(value) &&
3337
is_epirange_like(value))) ||
3438
(!required && !(is.null(value) || is_epirange_like(value)))) {
35-
stop(paste0("argument ", name, " is not a epirange"))
39+
rlang::abort(paste0("argument ", name, " is not a epirange"),
40+
name = name, value = value, class = "invalid_argument"
41+
)
3642
}
3743
}
3844

3945
check_epirange_param <- function(name, value, required = TRUE) {
4046
if (is.null(value)) {
4147
if (required) {
42-
stop(paste0("argument ", name, " is not a epirange"))
48+
rlang::abort(paste0("argument ", name, " is not a epirange"),
49+
name = name, value = value, class = "invalid_argument"
50+
)
4351
}
4452
return()
4553
}
4654
if (is_epirange_like(value)) {
4755
return()
4856
}
4957
if (!is.list || !all(sapply(sapply(value, is_epirange_like)))) {
50-
stop(paste0("argument ", name, " is not a epirange"))
58+
rlang::abort(paste0("argument ", name, " is not a epirange"),
59+
name = name, value = value, class = "invalid_argument"
60+
)
5161
}
5262
}
5363

@@ -61,7 +71,9 @@ check_single_string_param <- function(name, value, required = TRUE) {
6171
(
6272
is.character(value) && length(value) == 1
6373
)))) {
64-
stop(paste0("argument ", name, " is not a single string"))
74+
rlang::abort(paste0("argument ", name, " is not a single string"),
75+
name = name, value = value, class = "invalid_argument"
76+
)
6577
}
6678
}
6779

@@ -72,6 +84,8 @@ check_single_int_param <- function(name, value, required = TRUE) {
7284
length(value) == 1)) ||
7385
(!required &&
7486
!(is.null(value) || (is.numeric(value) && length(value) == 1)))) {
75-
stop(paste0("argument ", name, " is not a single integer"))
87+
rlang::abort(paste0("argument ", name, " is not a single integer"),
88+
name = name, value = value, class = "invalid_argument"
89+
)
7690
}
7791
}

0 commit comments

Comments
 (0)