Skip to content

[Bioc-devel] promptClass

3 messages · Martin Morgan, cstrato, Martin Maechler

#
promptClass fails to identify methods associated with the class. Here
is a fix:

Index: promptClass.R
===================================================================
--- promptClass.R       (revision 41719)
+++ promptClass.R       (working copy)
@@ -165,7 +165,7 @@
     if (nmeths > 0) {
        .meths.body <- "  \\describe{"
        for (i in 1:nmeths) {
-           .sigmat <- sigsList(methnms[i], where)
+           .sigmat <- sigsList(methnms[i], where=whereClass)
            for (j in seq_along(.sigmat)) {
                if (!all(is.na(match(.sigmat[[j]],clName)))) {
                    methn.i <- escape(methnms[i])
Index: RMethodUtils.R
===================================================================
--- RMethodUtils.R      (revision 41719)
+++ RMethodUtils.R      (working copy)
@@ -621,7 +621,7 @@
 getMethodsMetaData <-
   ## get the methods meta-data for function f on database where
   function(f, where = topenv(parent.frame())) {
-        mname <- mlistMetaName(f, where)
+        mname <- mlistMetaName(f, getPackageName(where))
         if(exists(mname, where = where, inherits = missing(where)))
             get(mname, where)
         else

Seth Falcon <sfalcon at fhcrc.org> writes:

  
    
#
Dear Martin

Thank you for sending the fast fix to the problem.

Best regards
Christian
Martin Morgan wrote:
#
MartinMo> promptClass fails to identify methods associated
    MartinMo> with the class. Here is a fix:

Thank you, Martin;
I've applied your patch to my working copy of R-devel,
and I can confirm it solves the problem for class "AffyBatch"
(from bioconductor package 'affy').

However it does not seem to fix the problem in my case:

  library(Matrix)
  promptClass("sparseMatrix")

which still produces a  sparseMatrix-class.Rd file which
contains

\section{Methods}{
No methods defined with class "sparseMatrix" in the signature.
}

so there's at least another bug there.
One difference:  "sparseMatrix" is a virtual class, "AffyBatch"
not, but then  showMethods(classes = "..") works for both.

I'd be glad if you have time to find another patch ;-) :-)

Martin Maechler
    

    >> cstrato <cstrato at aon.at> writes:
    >> 
    >>> Dear all,
    >>> 
    >>> What is the best way to write the docs for S4 classes?
    >>> 
    >>> Concretely, is it possible to include the methods in the
    >>> class documentation?  For example, the documentation for
    >>> class "AffyBatch" contains all methods.  However, when I
    >>> do: promptClass("AffyBatch") the relevant output of file
    >>> "AffyBatch-class.Rd" is: \section{Methods}{ No methods
    >>> defined with class "AffyBatch" in the signature.  }
    >>  promptClass used to provide more useful output.  You
    >> might want to report the issue on one of the R lists.
    >> 
    >>> Since PromptClass() contains a parameter "where" is it
    >>> possible to use it, and how?
    >>  I'm not sure that is relevant here.
    >> 
    >> One thing that can be useful here is
    >> showMethods(classes="AffyBatch").  The problem with
    >> static documentation for methods is that what methods are
    >> available can change based on what packages are attached.
    >> 
    >> If showMethods or a wrapper for it could be convinced to
    >> output a link to a help file, then it might actually be a
    >> good way to go...
    >> 
    >> + seth
    >> 
    >> -- 
    >> Seth Falcon | Computational Biology | Fred Hutchinson
    >> Cancer Research Center http://bioconductor.org
    >> 
    >> _______________________________________________
    >> Bioc-devel at stat.math.ethz.ch mailing list
    >> https://stat.ethz.ch/mailman/listinfo/bioc-devel

    MartinMo> -- Martin Morgan Bioconductor / Computational
    MartinMo> Biology http://bioconductor.org

    MartinMo> ______________________________________________
    MartinMo> R-devel at r-project.org mailing list
    MartinMo> https://stat.ethz.ch/mailman/listinfo/r-devel