| % File src/library/methods/man/getPackageName.Rd |
| % Part of the R package, https://www.R-project.org |
| % Copyright 1995-2013 R Core Team |
| % Distributed under GPL 2 or later |
| |
| \name{getPackageName} |
| \alias{getPackageName} |
| \alias{setPackageName} |
| \alias{packageSlot} |
| \alias{packageSlot<-} |
| \title{The Name associated with a Given Package} |
| \description{ |
| The functions below produce the package associated with a particular |
| environment or position on the search list, or of the package |
| containing a particular function. They are primarily used to support |
| computations that need to differentiate objects on multiple packages. |
| } |
| \usage{ |
| getPackageName(where, create = TRUE) |
| setPackageName(pkg, env) |
| |
| packageSlot(object) |
| packageSlot(object) <- value |
| } |
| \arguments{ |
| \item{where}{the environment or position on the search list |
| associated with the desired package.} |
| \item{object}{object providing a character string name, plus the |
| package in which this object is to be found.} |
| \item{value}{the name of the package.} |
| \item{create}{flag, should a package name be created if none can be |
| inferred? If \code{TRUE} and no non-empty package name is found, |
| the current date and time are used as a package name, and a |
| warning is issued. The created name is stored in the environment |
| if that environment is not locked.} |
| \item{pkg, env}{make the string in \code{pkg} the internal |
| package name for all computations that set class and method |
| definitions in environment \code{env}.} |
| } |
| \details{ |
| Package names are normally installed during loading of the package, |
| by the \link{INSTALL} script or by the \code{\link{library}} |
| function. (Currently, the name is stored as the object |
| \code{.packageName} but don't trust this for the future.) |
| } |
| \value{ |
| \code{getPackageName} returns the character-string name of the package |
| (without the extraneous \code{"package:"} found in the search list). |
| |
| \code{packageSlot} returns or sets the package name slot (currently |
| an attribute, not a formal slot, but this may change someday). |
| |
| \code{setPackageName} can be used to establish a package name in an |
| environment that would otherwise not have one. This |
| allows you to create classes and/or methods in an arbitrary |
| environment, but it is usually preferable to create packages by the |
| standard \R programming tools (\code{\link{package.skeleton}}, etc.) |
| } |
| |
| \seealso{ \code{\link{search}}, \code{\link{packageName}} } |
| |
| \examples{ |
| ## all the following usually return "base" |
| getPackageName(length(search())) |
| getPackageName(baseenv()) |
| getPackageName(asNamespace("base")) |
| getPackageName("package:base") |
| |
| } |
| \keyword{ programming }% at least one, from doc/KEYWORDS |