1
0
mirror of https://github.com/msberends/AMR.git synced 2026-03-19 23:02:26 +01:00

Pre-evaluate inline expressions, add format_inline_(), fix print.ab

- All bare {variable}/{expression} in message_()/warning_()/stop_() calls
  are now pre-evaluated via paste0(), so users without cli/glue never see
  raw template syntax (mo_source.R, first_isolate.R, join_microorganisms.R,
  antibiogram.R, atc_online.R)
- Add format_inline_() helper: formats a cli-markup string and returns it
  (not emits it), using cli::format_inline() when available and cli_to_plain()
  otherwise
- Rewrite .onAttach to use format_inline_() for all packageStartupMessage
  calls; also adds {.topic} link and {.code} markup for option names
- print.ab: pre-evaluate function_name via paste0 (no .envir needed),
  apply highlight_code() to each example bullet for R syntax highlighting
- join_microorganisms: pre-evaluate {type} and {nrow(...)} expressions

https://claude.ai/code/session_01XHWLohiSTdZvCutwD7ag2b
This commit is contained in:
Claude
2026-03-19 10:39:26 +00:00
parent 1dabd4df3d
commit 51f689b069
10 changed files with 44 additions and 33 deletions

19
R/ab.R
View File

@@ -552,17 +552,14 @@ print.ab <- function(x, ...) {
if (!is.null(attributes(x)$amr_selector)) {
function_name <- attributes(x)$amr_selector
if (pkg_is_available("cli", min_version = "3.0.0")) {
cli::cli_inform(
c(
"i" = "This {.cls ab} vector was retrieved using {.fun {function_name}}, which should normally be used inside a {.pkg dplyr} verb or {.code data.frame} call, e.g.:",
"*" = "{.code your_data %>% select({function_name}())}",
"*" = "{.code your_data %>% select(column_a, column_b, {function_name}())}",
"*" = "{.code your_data %>% filter(any({function_name}() == \"R\"))}",
"*" = "{.code your_data[, {function_name}()]}",
"*" = "{.code your_data[, c(\"column_a\", \"column_b\", {function_name}())]}"
),
.envir = environment()
)
cli::cli_inform(c(
"i" = paste0("This {.cls ab} vector was retrieved using {.fun ", function_name, "}, which should normally be used inside a {.pkg dplyr} verb or {.code data.frame} call, e.g.:"),
"*" = highlight_code(paste0("your_data %>% select(", function_name, "()")),
"*" = highlight_code(paste0("your_data %>% select(column_a, column_b, ", function_name, "()")),
"*" = highlight_code(paste0("your_data %>% filter(any(", function_name, "() == \"R\"))")),
"*" = highlight_code(paste0("your_data[, ", function_name, "()]")),
"*" = highlight_code(paste0("your_data[, c(\"column_a\", \"column_b\", ", function_name, "())]"))
))
} else {
message(word_wrap(paste0(
"This 'ab' vector was retrieved using `", function_name, "()`, which should normally be used inside a dplyr verb or data.frame call, e.g.:\n",