Skip to content

Commit 4f57432

Browse files
committed
Merge pull request #1376 from lionel-/labels-deprecation
Handle deprecated labellers
2 parents 854ca37 + 1fba535 commit 4f57432

File tree

4 files changed

+38
-0
lines changed

4 files changed

+38
-0
lines changed

R/facet-grid-.r

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,9 @@ facet_grid <- function(facets, margins = FALSE, scales = "fixed", space = "fixed
221221
stop("Must specify at least one variable to facet by", call. = FALSE)
222222
}
223223

224+
# Check for deprecated labellers
225+
labeller <- check_labeller(labeller)
226+
224227
facet(
225228
rows = rows, cols = cols, margins = margins, shrink = shrink,
226229
free = free, space_free = space_free, labeller = labeller,

R/facet-labels.r

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,3 +555,21 @@ adjust_angle <- function(angle) {
555555
angle + 180
556556
}
557557
}
558+
559+
# Check for old school labeller
560+
check_labeller <- function(labeller) {
561+
labeller <- match.fun(labeller)
562+
is_deprecated <- all(c("variable", "value") %in% names(formals(labeller)))
563+
564+
if (is_deprecated) {
565+
old_labeller <- labeller
566+
labeller <- function(labels) {
567+
Map(old_labeller, names(labels), labels)
568+
}
569+
warning("The labeller API has been updated. Labellers taking `variable`",
570+
"and `value` arguments are now deprecated. See labellers documentation.",
571+
call. = FALSE)
572+
}
573+
574+
labeller
575+
}

R/facet-wrap.r

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ facet_wrap <- function(facets, nrow = NULL, ncol = NULL, scales = "fixed",
9393
ncol <- sanitise_dim(ncol)
9494
}
9595

96+
# Check for deprecated labellers
97+
labeller <- check_labeller(labeller)
98+
9699
facet(
97100
facets = as.quoted(facets), free = free, shrink = shrink,
98101
as.table = as.table, switch = switch,

tests/testthat/test-facet-labels.r

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,3 +133,17 @@ test_that("as_labeller() deals with non-labellers", {
133133
p2 <- p + facet_wrap(~am, labeller = labeller(am = function(x) paste0(x, "-foo")))
134134
expect_equal(get_labels_matrix(p2), cbind(c("0-foo", "1-foo")))
135135
})
136+
137+
test_that("old school labellers still work", {
138+
my_labeller <- function(variable, value) {
139+
paste0("var = ", as.character(value))
140+
}
141+
142+
expect_warning(p <-
143+
ggplot(mtcars, aes(disp, drat)) +
144+
geom_point() +
145+
facet_grid(~cyl, labeller = my_labeller))
146+
147+
expected_labels <- cbind(paste("var =", c(4, 6, 8)))
148+
expect_identical(get_labels_matrix(p, "cols"), expected_labels)
149+
})

0 commit comments

Comments
 (0)