/
snakeCase-methods.R
64 lines (55 loc) · 1.26 KB
/
snakeCase-methods.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#' @name snakeCase
#' @inherit AcidGenerics::snakeCase
#' @note Updated 2020-07-08.
#'
#' @inheritParams params
#' @param ... Additional arguments.
#'
#' @examples
#' data(syntactic, package = "AcidTest")
#' object <- syntactic$character
#' snakeCase(object)
NULL
## Updated 2020-07-08.
.snakeCase <- # nolint
function(...) {
x <- .syntactic(...)
x <- tolower(x)
x
}
## Updated 2021-08-24.
`snakeCase,character` <- # nolint
function(object,
smart = TRUE,
names = TRUE,
prefix = TRUE) {
assert(
isCharacter(object),
isFlag(smart),
isFlag(names),
isFlag(prefix)
)
if (isTRUE(names) && hasNames(object)) {
names <- .snakeCase(
x = names(object),
smart = smart,
prefix = TRUE
)
} else {
names <- names(object)
}
object <- .snakeCase(
x = object,
smart = smart,
prefix = prefix
)
names(object) <- names
object
}
#' @rdname snakeCase
#' @export
setMethod(
f = "snakeCase",
signature = signature(object = "character"),
definition = `snakeCase,character`
)