Skip to content

Commit 2a023f9

Browse files
authored
Enable lazy copy of in-folder file dependencies (#11)
* Detect resources in file directory. Copy to output directories before attempting render. * Make sure filenames are full names as we may be out of directory
1 parent 786057d commit 2a023f9

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ Suggests:
2626
knitr,
2727
covr
2828
VignetteBuilder: knitr
29-
RoxygenNote: 7.1.0
29+
RoxygenNote: 7.1.1

R/assignr.R

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ generate_hw_pkg = function(x,
5151
type,
5252
output_dir = paste0(name, "-", type),
5353
render_files = TRUE,
54-
zip_files = TRUE) {
54+
zip_files = TRUE,
55+
file_dependencies = NULL) {
5556

5657
if (length(remove_indexes) > 0) {
5758
# create assignment output lines
@@ -69,6 +70,12 @@ generate_hw_pkg = function(x,
6970
# Make the directory
7071
dir.create(output_path, recursive = TRUE)
7172

73+
# Fill directory
74+
if(length(file_dependencies) >= 1) {
75+
file.copy(file_dependencies,
76+
file.path(output_path, basename(file_dependencies)))
77+
}
78+
7279
# Name of Rmd file to build
7380
rmd_material_name = file.path(output_path,
7481
paste0(output_name, ".Rmd"))
@@ -105,6 +112,11 @@ extract_hw_name = function(x) {
105112

106113
}
107114

115+
hw_dir_dependencies = function(x) {
116+
main_dir_files = list.files(dirname(x), full.names = TRUE)
117+
grep(main_dir_files, pattern='-(main|assign|sol)', invert=TRUE, value=TRUE)
118+
}
119+
108120
#' Retrieve example file path
109121
#'
110122
#' Obtains the file path for the example Rmd in the package.
@@ -181,6 +193,8 @@ assignr = function(file,
181193

182194
hw_name = extract_hw_name(file)
183195

196+
hw_dependency_files = hw_dir_dependencies(file)
197+
184198
input_lines = readLines(file)
185199

186200
chunk_tick_lines = detect_positions(input_lines, "```")
@@ -220,7 +234,8 @@ assignr = function(file,
220234
type = "assign",
221235
output_dir = output_dir,
222236
render_files = render_files,
223-
zip_files = zip_files
237+
zip_files = zip_files,
238+
file_dependencies = hw_dependency_files
224239
)
225240
}
226241

@@ -232,7 +247,8 @@ assignr = function(file,
232247
type = "soln",
233248
output_dir = output_dir,
234249
render_files = render_files,
235-
zip_files = zip_files
250+
zip_files = zip_files,
251+
file_dependencies = hw_dependency_files
236252
)
237253
}
238254

man/assignr-package.Rd

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

0 commit comments

Comments
 (0)