Glue strings to data in R. Small, fast, dependency free interpreted string literals.
If rlang is installed, glue will generate more informative errors if an interpolated expression either can't be parsed or fails to evaluate (#229).
+
now works in more situations, and gives errors when one side isn't a
character vector. It no longer automatically applies glue interpolation to
a non-glue input, if there is one. You'll need to do that yourself (#286).
glue_collapse(character())
(and hence glue_sql_collapse(character())
) now
return ""
, so that they always return a single string (#88).
glue_sql()
now collapses an empty vector to ""
not "NULL"
(#272).
glue_sql()
now uses DBI::dbQuoteLiteral()
for all object types. This
should increase fidelity of escaping for different object types (#279).
The "Speed of glue" vignette has been converted to an article, which allows
several package to be removed from Suggests
(and re-located to
Config/Needs/website
). The code got a light refresh, including a switch
from microbenchmark to bench and more modern use of ggplot2.
Add $(C_VISIBILITY)
to compiler flags to hide internal symbols from the dll (#284 @lionel-).
glue()
, glue_data()
, glue_col()
, and glue_data_col()
gain a new .literal
argument, which controls how quotes and the comment character are treated when parsing the expression string (#235). This is mostly useful when using a custom transformer.
Trailing whitespace-only lines don't interfere with indentation (#247).
Jennifer Bryan is now the maintainer.
The existing custom language engines for knitr, glue
and glue_sql
, are documented in a new vignette (#71).
glue_col()
gives special treatment to styling functions from the crayon package, e.g. glue_col("{blue foo}")
"just works" now, even if crayon is not attached (but is installed) (#241).
Unterminated backticks trigger the same error as unterminated single or double quotes (#237).
glue_sql()
collapses zero-length DBI::SQL
object into DBI::SQL("NULL")
(#244 @shrektan).
collapse()
has been removed (#213)New glue_sql_collapse()
function to collapse inputs and return a DBI::SQL()
object (#103).
glue()
gains a new .comment
argument, to control the comment character (#193).
glue()
gains a new .null
argument, to control the value to replace NULL
values with (#217, @echasnovski).
sql_quote_transformer()
is now allows whitespace after the trailing *
(#218).compare_proxy.glue()
method defined so glue objects can be compared to strings in testthat 3e without errors (#212)print.glue()
no longer prints an empty newline for 0 length inputs (#214)glue_safe()
gives a slightly nicer error messageglue_sql()
now collapses DBI::SQL()
elements correctly (#192 @shrektan)compare()
method gains a ...
argument, for compatibility with testthat 3.0.0glue_sql()
now replaces missing values correctly when collapsing values (#185).glue_sql()
now always preserves the type of the column even in the presence of missing values (#130).envir = NULL
is now supported and is equivalent to passing .envir = emptyenv()
(#140)
New glue_safe()
and glue_data_safe()
functions, safer versions of
glue()
that do not execute code, only look up values (using get()
). These
alternatives are useful for things like shiny applications where you do not
have control of the input for your glue expressions. (#140)
Fixed memory access issue and memory leaks found by valgrind.
glue now implements vctrs methods. This ensures that vectors of glue strings are compatible with tidyverse packages like tidyr (r-lib/tidyselect#170, tidyverse/tidyr#773, @lionel-).
Fix a LTO type mismatch warning (#146)
glue_sql()
now quotes lists of values appropriate to their type, rather
than coercing all values to characters (#153)
glue_data()
now implicitly coerces .x
to a list.
glue()
gains the .trim
argument, like glue_data()
.
single_quote()
double_quote()
and backtick()
all return NA
for NA
inputs (#135).
Improve trim()
's handling of lines containing only indentation (#162, #163, @alandipert)