Skip to content

Commit 358409f

Browse files
committed
refactor: avoid direct dependency on stringr
1 parent 3b0d99a commit 358409f

4 files changed

Lines changed: 25 additions & 26 deletions

File tree

DESCRIPTION

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ Roxygen: list(markdown = TRUE)
1010
RoxygenNote: 7.3.3
1111
Imports:
1212
desc,
13-
rvest,
14-
stringr
13+
rvest
1514
Suggests:
1615
testthat (>= 3.0.0)
1716
Config/testthat/edition: 3

NAMESPACE

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,3 @@ importFrom(rvest,html_attr)
88
importFrom(rvest,html_elements)
99
importFrom(rvest,html_text)
1010
importFrom(rvest,read_html)
11-
importFrom(stringr,str_extract)
12-
importFrom(stringr,str_sub)

R/get_versions.R

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#' @param package character(1)
55
#' @param index mutable env
66
#' @importFrom rvest read_html html_elements html_attr html_text
7-
#' @importFrom stringr str_extract str_sub
87
#' @export
98
get_versions <- function(package, cache = .versions_index) {
109
if (!is.null(cache[[package]])) {
@@ -15,35 +14,39 @@ get_versions <- function(package, cache = .versions_index) {
1514

1615
latest_row <- rvest::read_html(base_url) |>
1716
rvest::html_element(sprintf("tr:has(a[href^='%s'])", package))
18-
latest_release <- latest_row |>
19-
rvest::html_element("a") |>
20-
rvest::html_attr("href") |>
21-
stringr::str_extract("(.*)_(.*)\\.tar\\.gz", group = c(1, 2)) |>
22-
matrix(ncol = 2) |>
23-
as.data.frame()
24-
latest_release$date <- latest_row |>
25-
rvest::html_element("td:has(a) + td") |>
26-
rvest::html_text() |>
27-
stringr::str_sub(1, 10)
17+
latest_href <- latest_row |
18+
rvest::html_element("a") |
19+
rvest::html_attr("href")
20+
latest_release <- strcapture(
21+
"(.*)_(.*)\\.tar\\.gz",
22+
latest_href,
23+
data.frame(package = character(), version = character())
24+
)
25+
latest_release$date <- latest_row |
26+
rvest::html_element("td:has(a) + td") |
27+
rvest::html_text() |
28+
substr(1, 10)
2829
names(latest_release) <- c("package", "version", "date")
2930

3031
archive_releases <- tryCatch(
3132
expr = {
3233
url <- file.path(base_url, "Archive", package)
3334
page <- rvest::read_html(url)
3435

35-
rels <- rvest::html_elements(page, "tr > td > a") |>
36-
rvest::html_attr("href") |>
37-
stringr::str_extract("(.*)_(.*)\\.tar\\.gz", group = c(1, 2)) |>
38-
matrix(ncol = 2) |>
39-
as.data.frame()
36+
archive_hrefs <- rvest::html_elements(page, "tr > td > a") |
37+
rvest::html_attr("href")
38+
rels <- strcapture(
39+
"(.*)_(.*)\\.tar\\.gz",
40+
archive_hrefs,
41+
data.frame(package = character(), version = character())
42+
)
4043

4144
rels$date <- rvest::html_elements(
4245
page,
4346
"tr > td:has(a) + td"
44-
) |>
45-
rvest::html_text() |>
46-
stringr::str_sub(1, 10)
47+
) |
48+
rvest::html_text() |
49+
substr(1, 10)
4750

4851
names(rels) <- c("package", "version", "date")
4952
rels[!is.na(rels$package), ]

R/match_versions.R

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
#' @param description desc::desc
44
#' @param deps data.frame(type, package, version)
55
#' @param cache mutable env
6-
#' @importFrom stringr str_sub
76
match_versions <- function(description, deps, cache = .versions_index) {
8-
release_date <- description$get_field("Date/Publication") |>
9-
stringr::str_sub(1, 10) |>
7+
release_date <- description$get_field("Date/Publication") |
8+
substr(1, 10) |
109
as.Date()
1110

1211
dep_versions <- c()

0 commit comments

Comments
 (0)