Skip to content

Commit 6d32aa0

Browse files
committed
Added an exists= option to listRegisteredDirectories.
1 parent 9292f2e commit 6d32aa0

6 files changed

Lines changed: 34 additions & 7 deletions

File tree

DESCRIPTION

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: SewerRat
2-
Version: 0.3.4
3-
Date: 2025-03-12
2+
Version: 0.3.5
3+
Date: 2025-03-20
44
Title: Client for the SewerRat API
55
Description:
66
Search metadata files across a shared filesystem via the SewerRat API.

R/listRegisteredDirectories.R

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
#' If not \code{NULL}, results are filtered to directories that contain this path.
1111
#' @param prefix String containing an absolute path or a prefix thereof.
1212
#' If not \code{NULL}, results are filtered to directories that start with this string.
13+
#' @param exists Logical scalar indicating whether to only report directories that exist on the filesystem.
14+
#' If \code{FALSE}, only non-existent directories are reported, and if \code{NULL}, no filtering is applied based on existence.
1315
#'
1416
#' @author Aaron Lun
1517
#'
@@ -42,7 +44,7 @@
4244
#'
4345
#' @export
4446
#' @import httr2
45-
listRegisteredDirectories <- function(url, user=NULL, contains=NULL, prefix=NULL) {
47+
listRegisteredDirectories <- function(url, user=NULL, contains=NULL, prefix=NULL, exists=NULL) {
4648
query <- character(0)
4749
if (!is.null(user) && !isFALSE(user)) {
4850
if (isTRUE(user)) {
@@ -56,6 +58,9 @@ listRegisteredDirectories <- function(url, user=NULL, contains=NULL, prefix=NULL
5658
if (!is.null(prefix)) {
5759
query <- c(query, paste0("path_prefix=", URLencode(prefix, reserved=TRUE)))
5860
}
61+
if (!is.null(exists)) {
62+
query <- c(query, paste0("exists=", tolower(exists)))
63+
}
5964

6065
url <- paste0(url, "/registered")
6166
if (length(query)) {

R/startSewerRat.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
#' startSewerRat() # initialize a new instance.
2626
#'
2727
#' @export
28-
startSewerRat <- function(db=tempfile(fileext=".sqlite3"), port=NULL, wait = 1, version = "1.1.1", overwrite = FALSE) {
28+
startSewerRat <- function(db=tempfile(fileext=".sqlite3"), port=NULL, wait = 1, version = "1.1.3", overwrite = FALSE) {
2929
if (!is.null(running$active)) {
3030
return(list(new=FALSE, port=running$port, url=assemble_url(running$port)))
3131
}

man/listRegisteredDirectories.Rd

Lines changed: 10 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/startSewerRat.Rd

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/testthat/test-listRegisteredDirectories.R

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,19 @@ test_that("listRegisteredDirectories works as expected", {
4444
# Multiple filters work.
4545
filtered <- listRegisteredDirectories(info$url, prefix=dirname(mydir), user=TRUE, contains=file.path(mydir, "diet"))
4646
expect_identical(all, filtered)
47-
})
4847

48+
# Existence filter works.
49+
tmp <- tempfile()
50+
dir.create(tmp)
51+
register(tmp, names="metadata.json", url=info$url)
52+
on.exit(deregister(tmp, url=info$url), add=TRUE, after=FALSE)
53+
filtered <- listRegisteredDirectories(info$url, prefix=tmp, exists=TRUE)
54+
expect_identical(normalizePath(filtered[[1]]$path), normalizePath(tmp))
55+
56+
unlink(tmp, recursive=TRUE)
57+
filtered2 <- listRegisteredDirectories(info$url, prefix=tmp, exists=FALSE)
58+
expect_identical(filtered, filtered2)
59+
filtered <- listRegisteredDirectories(info$url, prefix=tmp, exists=TRUE)
60+
expect_identical(length(filtered), 0L)
61+
})
4962
})()

0 commit comments

Comments
 (0)