Bearloga has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/363867 )
Change subject: Add capitalization function
......................................................................
Add capitalization function
Also adds correct licensing info for code from Stack Overflow
Change-Id: I936b59b728e61fad07102c7e79a94d0754784607
---
M DESCRIPTION
M NAMESPACE
M NEWS.md
M R/manipulate.R
M R/maths.R
A man/capitalize_first_letter.Rd
M man/compress.Rd
M tests/testthat/test-manipulation.R
8 files changed, 60 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/wikimedia/discovery/polloi
refs/changes/67/363867/1
diff --git a/DESCRIPTION b/DESCRIPTION
index 94d9e10..5b3828b 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,12 +1,13 @@
Package: polloi
Type: Package
Title: Common Functionality for Wikimedia Dashboards
-Version: 0.2.0
-Date: 2017-06-28
+Version: 0.2.1
+Date: 2017-07-07
Authors@R: c(
person("Mikhail", "Popov", email = "[email protected]", role =
c("aut", "cre")),
person("Chelsy", "Xie", email = "[email protected]", role = "aut"),
- person("Oliver", "Keyes", role = "aut", comment = "No longer employed at
the Foundation")
+ person("Oliver", "Keyes", role = "aut", comment = "No longer employed at
the Foundation"),
+ person("Andrie", "de Vries", role = "ctb", comment = "Capitalization code
from StackOverflow")
)
Description: This package contains common functionality for all of the
Wikimedia Foundation's Shiny Dashboards.
diff --git a/NAMESPACE b/NAMESPACE
index 1b06a9b..3542a1d 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -1,6 +1,7 @@
# Generated by roxygen2: do not edit by hand
export(automata_select)
+export(capitalize_first_letter)
export(cbind_fill)
export(check_past_week)
export(check_yesterday)
diff --git a/NEWS.md b/NEWS.md
index 713fb16..4a41b2b 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,7 @@
+polloi 0.2.1
+============
+- Adds `capitalize_first_letter`
+
polloi 0.2.0
============
- Adds unit tests and lint checking
([T145445](https://phabricator.wikimedia.org/T145445)).
diff --git a/R/manipulate.R b/R/manipulate.R
index e9e9fb1..01294b0 100644
--- a/R/manipulate.R
+++ b/R/manipulate.R
@@ -117,3 +117,16 @@
}
return(no_set)
}
+
+#' @title Capitalize First Letter Of Every Word
+#' @description Capitalizes the first letter of every word.
+#' @details This function is made available under CC-BY-SA 3.0
+#' @param x character vector
+#' @author [Andrie de Vries](https://stackoverflow.com/users/602276/andrie)
+#' @source
\url{https://stackoverflow.com/questions/6364783/capitalize-the-first-letter-of-both-words-in-a-two-word-string}
+#' @export
+capitalize_first_letter <- function(x) {
+ return(vapply(strsplit(x, " "), function(s) {
+ return(paste0(toupper(substring(s, 1, 1)), substring(s, 2), collapse = "
"))
+ }, ""))
+}
diff --git a/R/maths.R b/R/maths.R
index aab5b7f..3308e91 100644
--- a/R/maths.R
+++ b/R/maths.R
@@ -16,8 +16,11 @@
#' @title Convert Numeric Values to use SI suffixes
#' @description takes a numeric vector (e.g. 1200, 1300000) and converts it to
#' use SI suffixes (e.g. 1.2K, 1.3M)
+#' @details This function is made available under CC-BY-SA 3.0
#' @param x a vector of numeric or integer values
#' @param round_by how many digits to round the resulting numbers by
+#' @author Original code: [42-](https://stackoverflow.com/users/1855677/42);
+#' improvement: Mikhail
#' @references
\url{https://stackoverflow.com/questions/28159936/formatting-large-currency-or-dollar-values-to-millions-billions/}
#' @export
compress <- function(x, round_by = 2) {
diff --git a/man/capitalize_first_letter.Rd b/man/capitalize_first_letter.Rd
new file mode 100644
index 0000000..184da6e
--- /dev/null
+++ b/man/capitalize_first_letter.Rd
@@ -0,0 +1,23 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/manipulate.R
+\name{capitalize_first_letter}
+\alias{capitalize_first_letter}
+\title{Capitalize First Letter Of Every Word}
+\source{
+\url{https://stackoverflow.com/questions/6364783/capitalize-the-first-letter-of-both-words-in-a-two-word-string}
+}
+\usage{
+capitalize_first_letter(x)
+}
+\arguments{
+\item{x}{character vector}
+}
+\description{
+Capitalizes the first letter of every word.
+}
+\details{
+This function is made available under CC-BY-SA 3.0
+}
+\author{
+\href{https://stackoverflow.com/users/602276/andrie}{Andrie de Vries}
+}
diff --git a/man/compress.Rd b/man/compress.Rd
index fb16556..85826c6 100644
--- a/man/compress.Rd
+++ b/man/compress.Rd
@@ -15,6 +15,13 @@
takes a numeric vector (e.g. 1200, 1300000) and converts it to
use SI suffixes (e.g. 1.2K, 1.3M)
}
+\details{
+This function is made available under CC-BY-SA 3.0
+}
\references{
\url{https://stackoverflow.com/questions/28159936/formatting-large-currency-or-dollar-values-to-millions-billions/}
}
+\author{
+Original code: \href{https://stackoverflow.com/users/1855677/42}{42-};
+improvement: Mikhail
+}
diff --git a/tests/testthat/test-manipulation.R
b/tests/testthat/test-manipulation.R
index a3317c6..ef2ce6b 100644
--- a/tests/testthat/test-manipulation.R
+++ b/tests/testthat/test-manipulation.R
@@ -17,3 +17,8 @@
expect_equal(result[3, , drop = TRUE], c(NA, NA, 3, 6, NA, NA)) # Exclude
Linting
expect_equal(result[, 6, drop = TRUE], c(1, NA, NA))
})
+
+test_that("Capitalization works", {
+ expect_equal(capitalize_first_letter("hello world"), "Hello World")
+ expect_equal(capitalize_first_letter(c("abc is", "easy as 123")), c("Abc
Is", "Easy As 123"))
+})
--
To view, visit https://gerrit.wikimedia.org/r/363867
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I936b59b728e61fad07102c7e79a94d0754784607
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/discovery/polloi
Gerrit-Branch: master
Gerrit-Owner: Bearloga <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits