NEWS.md
plu_ral() now accepts vectors for arguments n and pl.
plu_ral(c("word", "phrase"), n = c(1, 2)) returns c("word", "phrases").plu_ral() argument n_fn is now deprecated.plu_stick() is now defunct.plu_ralize().
plu_ralize() in your package without depending on plu, using the staticimports package.plu_ralize().
plu_ral() and plu_more(), which use plu_ralize() internally.plu_stick() in favor of knitr::combine_words() or glue::glue_collapse().plu_ral() now supports arbitrary delimiters for special sequences.
plu_ral("attorney [general]", open = "[", close = "]") produces “attorneys general”.plu_ral() now supports {braced|pipe} sequences of indefinite length.
plu_ral("{one|two|three|more}", n = 3) produces “three”.plu_ral("{one|two|three|more}", n = 50) produces “more”.open and close.plu_ralize().
plu_ral() and plu_more(), which use plu_ralize() internally.plu_ral() now correctly handles {braced} strings that contain sentence breaks.
plu_ral() now correctly handles {braced|pipe} sequences when pl is set to FALSE.
plu_ral("{singular|plural}", pl = FALSE) now returns "singular" instead of incorrectly returning "plural".plu_ralize() now correctly handles ALL-CAPS words where their lowercase equivalent has an irregular plural.
plu_ralize("CHILD") now returns "CHILDs" instead of incorrectly returning "Children".is_capital(strict = TRUE) now correctly handles non-character inputs.
is_capital(1, strict = TRUE) no returns FALSE instead of incorrectly returning NA.crayon if it is installed.plu::stick() now produce errors.rlang and stringi.backports.plu::more() limits a vector to the first n elements with a message for remaining elements.
plu::more(letters, max = 2) yields c("a", "b", "24 more characters").The convenience function get_fun() finds a function using a character string or unquoted function name, with or without colons.
plu::ral() now ensures that the capitalization of a phrase stays the same after pluralizing.
plu::ral("A sentence.") now results in “Sentences.” rather than “sentences.”Convenience functions around capitalization have been added:
is_capital() tests if a character (or string of characters) is capital or lowercase.is_capitalized() tests if the first alphabetic character in a string is capital.capitalize() converts the first alphabetic character in a string to capital.
tools::toTitleCase() or stringr::str_to_sentence(), this does not change the capitalization of any subsequent characters.plu::stick()’s oxford now defaults to FALSE rather than depending on the user’s environment.plu::stick()’s syndeton is now deprecated in favor of explicitly setting sep and conj.plu::stick()’s fn and ... are now deprecated in favor of applying a function to x before passing it into plu::stick().?plu).plu::ral() from inside other functions.