| % File src/library/methods/man/method.skeleton.Rd |
| % Part of the R package, https://www.R-project.org |
| % Copyright 1995-2016 R Core Team |
| % Distributed under GPL 2 or later |
| |
| \name{method.skeleton} |
| \alias{method.skeleton} |
| \title{Create a Skeleton File for a New Method} |
| \description{ |
| This function writes a source file containing a call to |
| \code{\link{setMethod}} to define a method for the generic function |
| and signature supplied. By default the method definition is in line |
| in the call, but can be made an external (previously assigned) function. |
| } |
| \usage{ |
| method.skeleton(generic, signature, file, external = FALSE, where) |
| } |
| \arguments{ |
| \item{generic}{the character string name of the generic function, or |
| the generic function itself. In the first case, the function |
| need not currently be a generic, as it would not for the |
| resulting call to \code{\link{setMethod}}.} |
| \item{signature}{the method signature, as it would be given to \code{\link{setMethod}}} |
| \item{file}{a character string name for the output file, or a |
| writable connection. By default the generic function name and |
| the classes in the signature are concatenated, with separating |
| underscore characters. The file name should normally end in \code{".R"}. } |
| |
| To write multiple method skeletons to one file, open the file |
| connection first and then pass it to \code{method.skeleton()} in |
| multiple calls. |
| \item{external}{flag to control whether the function definition for |
| the method should be a separate external object assigned in the |
| source file, or included in line in the call to |
| \code{\link{setMethod}}. |
| If supplied as a character string, this will be used as the name |
| for the external function; by default the name concatenates the |
| generic and signature names, with separating underscores.} |
| \item{where}{The environment in which to look for the function; by default, |
| the top-level environment of the call to \code{method.skeleton}.} |
| } |
| \value{ |
| The \code{file} argument, invisibly, but the function is used for its side effect. |
| } |
| \seealso{\code{\link{setMethod}}, \code{\link{package.skeleton}} |
| } |
| \examples{ |
| \dontshow{oWD <- setwd(tempdir())} |
| setClass("track", slots = c(x ="numeric", y="numeric")) |
| method.skeleton("show", "track") ## writes show_track.R |
| method.skeleton("Ops", c("track", "track")) ## writes "Ops_track_track.R" |
| |
| ## write multiple method skeletons to one file |
| con <- file("./Math_track.R", "w") |
| method.skeleton("Math", "track", con) |
| method.skeleton("exp", "track", con) |
| method.skeleton("log", "track", con) |
| close(con) |
| \dontshow{setwd(oWD)} |
| } |
| \keyword{programming} |
| \keyword{methods} |