Можно ли определить сантехническую функцию в другом файле (или пакете?) - PullRequest
0 голосов
/ 11 июня 2018

У меня возникли некоторые проблемы с получением синтаксиса при получении верстаковой функции, когда эта функция определена в другом файле.

Я хочу поместить стандартную верстальную функцию в пакет.Моя первая попытка была примерно такой:

# in the package

#' Get results for plumber
#' 
#' @param client the clientname
#' @param date The date of data to fetch
#' @param config a config file
#' 
#' @export
plumber_ga <- function(client = "none", date = Sys.Date(), config = NULL){

  message("Calling API for client:", client, " for date:", date)

  ...

}

, а затем я пытался вызвать эту функцию в файле API:

# api.R

#* Get data
#* @param client the clientname
#* @param date One day of data to fetch
#* @param config A config file TBD
#* @post /datalake/<client>/foo
plumber_ga(client = "none", date = Sys.Date(), config = NULL){
  ...
}

... но когда я попробую это, я получуclient is not defined ошибка.Есть ли способ сделать это?Я предполагаю, что аннотации конфликтуют или что-то - или мне нужно определить функцию только один раз в файле api.R?

Эта же функция работает, если вызывается напрямую:

# api.R

#* Get data
#* @param client the clientname
#* @param date One day of data to fetch
#* @param config A config file TBD
#* @post /datalake/<client>/foo
function(client = "none", date = Sys.Date(), config = NULL){
  ...
}

(такжеспросил на упаковке GitHub )

1 Ответ

0 голосов
/ 11 июня 2018

Это работает:

#* Get data
#* @param client the clientname
#* @param date One day of data to fetch
#* @param config A config file TBD
#* @post /datalake/<client>/google_analytics
function(client = "none", date = Sys.Date(), config = NULL){

  plumber_ga(client, date, config)

}
...