A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/r-lib/roxygen2/commit/29db38fb823fcfe9cf2ad05f885bf20dfa1c964b below:

Revamp operation of rd and namespace roclets. · r-lib/roxygen2@29db38f · GitHub

1 -

# Processed first

2 -

ns_tags_import <- c(

3 -

"import",

4 -

"importFrom",

5 -

"importClassesFrom",

6 -

"importMethodsFrom",

7 -

"useDynLib",

8 -

"rawNamespace"

9 -

)

10 -

ns_tags <- c(

11 -

ns_tags_import,

12 -

"evalNamespace",

13 -

"export",

14 -

"exportClass",

15 -

"exportMethod",

16 -

"exportS3Method",

17 -

"exportPattern"

18 -

)

19 - 20 1

#' Roclet: make `NAMESPACE`

21 2

#'

22 3

#' @description

@@ -55,15 +36,15 @@ roclet_preprocess.roclet_namespace <- function(x,

55 36

base_path,

56 37

global_options = list()) {

57 38 58 -

lines <- blocks_to_ns(blocks, env, tag_set = ns_tags_import)

39 +

lines <- blocks_to_ns(blocks, env, import_only = TRUE)

59 40

NAMESPACE <- file.path(base_path, "NAMESPACE")

60 41 61 42

if (length(lines) == 0 && !made_by_roxygen(NAMESPACE)) {

62 43

return(x)

63 44

}

64 45 65 46

results <- c(made_by("#"), lines)

66 -

write_if_different(NAMESPACE, results, check = FALSE)

47 +

write_if_different(NAMESPACE, results, check = TRUE)

67 48 68 49

invisible(x)

69 50

}

@@ -77,30 +58,6 @@ roclet_process.roclet_namespace <- function(x,

77 58

blocks_to_ns(blocks, env)

78 59

}

79 60 80 -

#' @export

81 -

roxy_tag_parse.roxy_tag_evalNamespace <- function(x) tag_code(x)

82 -

#' @export

83 -

roxy_tag_parse.roxy_tag_export <- function(x) tag_words_line(x)

84 -

#' @export

85 -

roxy_tag_parse.roxy_tag_exportClass <- function(x) tag_words(x, 1)

86 -

#' @export

87 -

roxy_tag_parse.roxy_tag_exportS3Method <- function(x) tag_words(x, min = 0, max = 2)

88 -

#' @export

89 -

roxy_tag_parse.roxy_tag_exportMethod <- function(x) tag_words(x, min = 1)

90 -

#' @export

91 -

roxy_tag_parse.roxy_tag_exportPattern <- function(x) tag_words(x, min = 1)

92 -

#' @export

93 -

roxy_tag_parse.roxy_tag_import <- function(x) tag_words(x, min = 1)

94 -

#' @export

95 -

roxy_tag_parse.roxy_tag_importClassesFrom <- function(x) tag_words(x, min = 2)

96 -

#' @export

97 -

roxy_tag_parse.roxy_tag_importFrom <- function(x) tag_words(x, min = 2)

98 -

#' @export

99 -

roxy_tag_parse.roxy_tag_importMethodsFrom <- function(x) tag_words(x, min = 2)

100 -

#' @export

101 -

roxy_tag_parse.roxy_tag_rawNamespace <- function(x) tag_code(x)

102 -

#' @export

103 -

roxy_tag_parse.roxy_tag_useDynLib <- function(x) tag_words(x, min = 1)

104 61 105 62

#' @export

106 63

roclet_output.roclet_namespace <- function(x, results, base_path, ...) {

@@ -124,86 +81,185 @@ roclet_clean.roclet_namespace <- function(x, base_path) {

124 81 125 82

# NAMESPACE generation ----------------------------------------------------

126 83 127 -

blocks_to_ns <- function(blocks, env, tag_set = ns_tags) {

128 -

lines <- map(blocks, block_to_ns, env = env, tag_set = tag_set)

84 +

blocks_to_ns <- function(blocks, env, import_only = FALSE) {

85 +

lines <- map(blocks, block_to_ns, env = env, import_only = import_only)

129 86

lines <- unlist(lines) %||% character()

130 87 131 88

sort_c(unique(lines))

132 89

}

133 90 134 -

block_to_ns <- function(block, env, tag_set = ns_tags) {

135 -

tags <- block_get_tags(block, tag_set)

91 +

block_to_ns <- function(block, env, import_only = FALSE) {

92 +

map(block$tags, roxy_tag_ns, block = block, env = env, import_only = import_only)

93 +

}

94 + 95 +

# Namespace tag methods ---------------------------------------------------

136 96 137 -

map(tags, function(tag) {

138 -

exec(paste0("ns_", tag$tag), tag, block, env)

139 -

})

97 +

roxy_tag_ns <- function(x, block, env, import_only = FALSE) {

98 +

UseMethod("roxy_tag_ns")

140 99

}

141 100 142 -

ns_export <- function(tag, block, env) {

143 -

if (identical(tag$val, "")) {

101 +

#' @export

102 +

roxy_tag_ns.default <- function(x, block, env, import_only = FALSE) {

103 + 104 +

}

105 + 106 +

#' @export

107 +

roxy_tag_parse.roxy_tag_evalNamespace <- function(x) {

108 +

tag_code(x)

109 +

}

110 +

#' @export

111 +

roxy_tag_ns.roxy_tag_evalNamespace <- function(x, block, env, import_only = FALSE) {

112 +

roxy_tag_eval(x, env)

113 +

}

114 + 115 +

#' @export

116 +

roxy_tag_parse.roxy_tag_export <- function(x) {

117 +

tag_words_line(x)

118 +

}

119 +

#' @export

120 +

roxy_tag_ns.roxy_tag_export <- function(x, block, env, import_only = FALSE) {

121 +

if (import_only) {

122 +

return()

123 +

}

124 + 125 +

if (identical(x$val, "")) {

144 126

# FIXME: check for empty exports (i.e. no name)

145 127

default_export(block$object, block)

146 128

} else {

147 -

export(tag$val)

129 +

export(x$val)

148 130

}

149 131

}

150 132 151 -

ns_exportClass <- function(tag, block, env) export_class(tag$val)

152 -

ns_exportMethod <- function(tag, block, env) export_s4_method(tag$val)

153 -

ns_exportPattern <- function(tag, block, env) one_per_line("exportPattern", tag$val)

154 -

ns_import <- function(tag, block, env) one_per_line("import", tag$val)

155 -

ns_importFrom <- function(tag, block, env) repeat_first("importFrom", tag$val)

156 -

ns_importClassesFrom <- function(tag, block, env) repeat_first("importClassesFrom", tag$val)

157 -

ns_importMethodsFrom <- function(tag, block, env) repeat_first("importMethodsFrom", tag$val)

133 +

#' @export

134 +

roxy_tag_parse.roxy_tag_exportClass <- function(x) {

135 +

tag_words(x, 1)

136 +

}

137 +

#' @export

138 +

roxy_tag_ns.roxy_tag_exportClass <- function(x, block, env, import_only = FALSE) {

139 +

if (import_only) {

140 +

return()

141 +

}

158 142 159 -

ns_exportS3Method <- function(tag, block, env) {

160 -

obj <- block$object

143 +

export_class(x$val)

144 +

}

145 + 146 +

#' @export

147 +

roxy_tag_parse.roxy_tag_exportMethod <- function(x) {

148 +

tag_words(x, min = 1)

149 +

}

150 +

#' @export

151 +

roxy_tag_ns.roxy_tag_exportMethod <- function(x, block, env, import_only = FALSE) {

152 +

if (import_only) {

153 +

return()

154 +

}

155 +

export_s4_method(x$val)

156 +

}

161 157 162 -

if (length(tag$val) < 2 && !inherits(obj, "s3method")) {

163 -

roxy_tag_warning(tag,

158 +

#' @export

159 +

roxy_tag_parse.roxy_tag_exportPattern <- function(x) {

160 +

tag_words(x, min = 1)

161 +

}

162 +

#' @export

163 +

roxy_tag_ns.roxy_tag_exportPattern <- function(x, block, env, import_only = FALSE) {

164 +

if (import_only) {

165 +

return()

166 +

}

167 +

one_per_line("exportPattern", x$val)

168 +

}

169 + 170 +

#' @export

171 +

roxy_tag_parse.roxy_tag_exportS3Method <- function(x) {

172 +

tag_words(x, min = 0, max = 2)

173 +

}

174 +

#' @export

175 +

roxy_tag_ns.roxy_tag_exportS3Method <- function(x, block, env, import_only = FALSE) {

176 +

if (import_only) {

177 +

return()

178 +

}

179 + 180 +

obj <- block$object

181 +

if (length(x$val) < 2 && !inherits(obj, "s3method")) {

182 +

roxy_tag_warning(x,

164 183

"`@exportS3Method` and `@exportS3Method generic` must be used with an S3 method"

165 184

)

166 185

return()

167 186

}

168 187 169 -

if (identical(tag$val, "")) {

188 +

if (identical(x$val, "")) {

170 189

method <- attr(obj$value, "s3method")

171 -

} else if (length(tag$val) == 1) {

172 -

method <- c(tag$val, attr(obj$value, "s3method")[[2]])

190 +

} else if (length(x$val) == 1) {

191 +

method <- c(x$val, attr(obj$value, "s3method")[[2]])

173 192

} else {

174 -

method <- tag$val

193 +

method <- x$val

175 194

}

176 195 177 196

export_s3_method(method)

178 197

}

179 198 180 -

ns_useDynLib <- function(tag, block, env) {

181 -

if (length(tag$val) == 1) {

182 -

return(paste0("useDynLib(", auto_quote(tag$val), ")"))

199 +

#' @export

200 +

roxy_tag_parse.roxy_tag_import <- function(x) {

201 +

tag_words(x, min = 1)

202 +

}

203 +

#' @export

204 +

roxy_tag_ns.roxy_tag_import <- function(x, block, env, import_only = FALSE) {

205 +

one_per_line("import", x$val)

206 +

}

207 + 208 +

#' @export

209 +

roxy_tag_parse.roxy_tag_importClassesFrom <- function(x) {

210 +

tag_words(x, min = 2)

211 +

}

212 +

#' @export

213 +

roxy_tag_ns.roxy_tag_importClassesFrom <- function(x, block, env, import_only = FALSE) {

214 +

repeat_first("importClassesFrom", x$val)

215 +

}

216 + 217 +

#' @export

218 +

roxy_tag_parse.roxy_tag_importFrom <- function(x) {

219 +

tag_words(x, min = 2)

220 +

}

221 +

#' @export

222 +

roxy_tag_ns.roxy_tag_importFrom <- function(x, block, env, import_only = FALSE) {

223 +

repeat_first("importFrom", x$val)

224 +

}

225 + 226 +

#' @export

227 +

roxy_tag_parse.roxy_tag_importMethodsFrom <- function(x) {

228 +

tag_words(x, min = 2)

229 +

}

230 +

#' @export

231 +

roxy_tag_ns.roxy_tag_importMethodsFrom <- function(x, block, env, import_only = FALSE) {

232 +

repeat_first("importMethodsFrom", x$val)

233 +

}

234 + 235 +

#' @export

236 +

roxy_tag_parse.roxy_tag_rawNamespace <- function(x) {

237 +

tag_code(x)

238 +

}

239 +

#' @export

240 +

roxy_tag_ns.roxy_tag_rawNamespace <- function(x, block, env, import_only = FALSE) {

241 +

x$val

242 +

}

243 + 244 +

#' @export

245 +

roxy_tag_parse.roxy_tag_useDynLib <- function(x) {

246 +

tag_words(x, min = 1)

247 +

}

248 +

#' @export

249 +

roxy_tag_ns.roxy_tag_useDynLib <- function(x, block, env, import_only = FALSE) {

250 +

if (length(x$val) == 1) {

251 +

return(paste0("useDynLib(", auto_quote(x$val), ")"))

183 252

}

184 253 185 -

if (any(grepl(",", tag$val))) {

254 +

if (any(grepl(",", x$val))) {

186 255

# If there's a comma in list, don't quote output. This makes it possible

187 256

# for roxygen2 to support other NAMESPACE forms not otherwise mapped

188 -

args <- paste0(tag$val, collapse = " ")

257 +

args <- paste0(x$val, collapse = " ")

189 258

paste0("useDynLib(", args, ")")

190 259

} else {

191 -

repeat_first("useDynLib", tag$val)

260 +

repeat_first("useDynLib", x$val)

192 261

}

193 262

}

194 -

ns_rawNamespace <- function(tag, block, env) tag$val

195 -

ns_evalNamespace <- function(tag, block, env) {

196 -

roxy_tag_eval(tag, env)

197 -

}

198 - 199 -

# Functions used by both default_export and ns_* functions

200 -

export <- function(x) one_per_line("export", x)

201 -

export_class <- function(x) one_per_line("exportClasses", x)

202 -

export_s4_method <- function(x) one_per_line("exportMethods", x)

203 -

export_s3_method <- function(x) {

204 -

args <- paste0(auto_backtick(x), collapse = ",")

205 -

paste0("S3method(", args, ")")

206 -

}

207 263 208 264

# Default export methods --------------------------------------------------

209 265

@@ -223,9 +279,16 @@ default_export.default <- function(x, block) export(x$alias)

223 279

#' @export

224 280

default_export.NULL <- function(x, block) export(block_get_tag_value(block, "name"))

225 281 226 - 227 282

# Helpers -----------------------------------------------------------------

228 283 284 +

export <- function(x) one_per_line("export", x)

285 +

export_class <- function(x) one_per_line("exportClasses", x)

286 +

export_s4_method <- function(x) one_per_line("exportMethods", x)

287 +

export_s3_method <- function(x) {

288 +

args <- paste0(auto_backtick(x), collapse = ",")

289 +

paste0("S3method(", args, ")")

290 +

}

291 + 229 292

one_per_line <- function(name, x) {

230 293

paste0(name, "(", auto_backtick(x), ")")

231 294

}


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4