emit_warning: Provide a warning with a consistent format

Description Usage Arguments Examples

Description

Create a warning using a message body that can be formed from multiple text objects. If a single text object is provided then the warning message text will appear on a single line. If multiple text fragments are provided then they will be separated by newlines (in the order provided). Custom formatting is possible by providing a messaging template that uses the string expression scheme used in the glue package.

Usage

1
emit_warning(..., .format = NULL, .f_name = TRUE, .issue = TRUE)

Arguments

...

a collection of string expressions and named arguments for string interpolation. Bare strings will be pasted together and separated by newlines. Named arguments are used to provide values for string interpolation in the message.

.format

a format template for a message. If not provided, the default template of "{.f_name}: {text}" will be used.

.f_name

the name of the function that caused the warning. If not provided, the function name will be obtained from the function call stack.

.issue

a logical value that indicates whether a warning should be issued at all.

Examples

 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
## Not run: 
# Write a function that yields a warning with
# the requested number of info lines
yield_a_warning <- function(msgs) {

  if (msgs > 3) msgs <- 3

  # Create some strings can serve as additional
  # info for the message
  message_components <-
    c("* message info 1",
      "* message info 2",
      "* message info 3")

  # Generate and emit a formatted message
  emit_warning(
    "There (is/are) {number} thing(s) to note",
    message_components[1:msgs],
    number = msgs,
    .format = "{.f_name} info: {text}")
}

# When that function is called, a formatted
# message will appear; here are some examples:
yield_a_warning(msgs = 3)
#> Warning message:
#> `yield_a_warning()` info: There are 3 things to note
#> * message info 1
#> * message info 2
#> * message info 3

yield_a_warning(msgs = 2)
#> Warning message:
#> `yield_a_warning()` info: There are 2 things to note
#> * message info 1
#> * message info 2

yield_a_warning(msgs = 1)
#> Warning message:
#> `yield_a_warning()` info: There is 1 thing to note
#> * message info 1

## End(Not run)

messaging documentation built on May 1, 2019, 10:30 p.m.