From 1db3c18e92ed86951754078a08be238f3db58201 Mon Sep 17 00:00:00 2001 From: schochastics Date: Mon, 16 Oct 2023 20:50:29 +0200 Subject: [PATCH] added basename --- R/get.R | 13 +++++++++++++ tests/testthat/test-get.R | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/R/get.R b/R/get.R index 35ed804..ade043d 100644 --- a/R/get.R +++ b/R/get.R @@ -23,6 +23,7 @@ #' ada_get_search(url) #' ada_get_protocol(url) #' ada_get_domain(url) +#' ada_get_basename(url) #' ## these functions are vectorized #' urls <- c("http://www.google.com", "http://www.google.com:80", "noturl") #' ada_get_port(urls) @@ -115,3 +116,15 @@ ada_get_domain <- function(url, decode = TRUE) { } return(res) } + +#' @rdname ada_get_href +#' @export +ada_get_basename <- function(x) { + protocol <- ada_get_protocol(x) + not_na <- !is.na(protocol) + tmp <- protocol[not_na] + host <- ada_get_hostname(x[not_na]) + basename <- rep(NA_character_, length(x)) + basename[not_na] <- paste0(tmp, "//", host) + basename +} diff --git a/tests/testthat/test-get.R b/tests/testthat/test-get.R index 379ac83..eb83140 100644 --- a/tests/testthat/test-get.R +++ b/tests/testthat/test-get.R @@ -10,11 +10,13 @@ test_that("all get functions work", { expect_equal(ada_get_search(url), "?q=1") expect_equal(ada_get_hash(url), "#frag") expect_equal(ada_get_protocol(url), "https:") + expect_equal(ada_get_domain(url), "example.org") + expect_equal(ada_get_basename(url), "https://example.org") }) get_functions <- c( ada_get_href, ada_get_username, ada_get_password, ada_get_host, ada_get_hostname, ada_get_port, ada_get_pathname, - ada_get_search, ada_get_hash, ada_get_protocol + ada_get_search, ada_get_hash, ada_get_protocol, ada_get_domain, ada_get_basename ) test_that("invalid urls should return NA, #26", {