vld_error_msg: Get or set a validation error message

Description Usage Arguments Details Value Examples

Description

Get or set a validation error message

Usage

1
2
3
4
5

Arguments

f

Predicate function.

env

Environment that is in scope when a {{...}} substring of the error message is interpolated.

value

Error message (string or quosure of a string).

msg

Error message (string).

Details

An error message can only be set for predicate functions that are closures. To set an error message of a primitive predicate, e.g., is.array(), transform it to a closure with rlang::as_closure().

Value

Quosure of a string.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
is_integer <- rlang::as_closure(is.integer)
vld_error_msg(is_integer) <- "{{.}} not of integer type (type: {typeof(.)})"
vld_error_msg(is_integer)

foo <- firmly(identity, is_integer)
foo(1:3)
## Not run: 
foo(runif(3))
## End(Not run)

is_integer <- rlang::is_integer
msg <- local({
  len <- function(n) if (is.null(n)) "" else paste(" of length", n)
  new_vld_error_msg("{{.}} is not an integer vector{{len(.value$n)}}")
})
vld_error_msg(is_integer) <- msg

foo <- firmly(identity, is_integer(n = 3))
foo(1:3)
## Not run: 
foo(1:2)
## End(Not run)

egnha/rong documentation built on May 7, 2019, 9:48 p.m.