S4 dispatch for .DollarNames (utils)
Le 29/05/10 20:23, Deepayan Sarkar a ?crit :
On Sat, May 29, 2010 at 4:21 AM, Romain Francois <romain at r-enthusiasts.com> wrote:
Hello,
I'm trying to make .DollarNames generic and implement a method for it in a
package. .DollarNames is the function that is now called to get completion
possibilities.
My R code looks like this:
setGeneric( ".DollarNames" )
setClass("track",
representation(x="numeric", y="numeric"))
## A class extending the previous, adding one more slot
setClass("trackCurve",
representation(smooth = "numeric"),
contains = "track")
setMethod( ".DollarNames", signature( x = "track", pattern = "character" ),
function(x, pattern){
grep( pattern, c("foo", "bar"), value = TRUE )
} )
and the NAMESPACE :
import( utils )
exportMethods( .DollarNames )
exportClasses( track, trackCurve )
When I load the package, I can call .DollarNames explicitely :
require( foo ) x<- new( "trackCurve", x = 1:10, y = 1:10, smooth = 1:10 ) .DollarNames( x, "f" )
[1] "foo" but completion does not work :
x$f<TAB>
x$
I guess because
utils:::.DollarNames(x, "f")
character(0)
yes. hence the hack I used when replying which is probably not a good idea, specially if two packages want it.
so the S4 generic is not being seen within the utils namespace. I don't know what the right fix is... -Deepayan
Perhaps something like the attached ? defining a generic in methods and use this one when methods dispatch is on.
What do I miss ? I've uploaded foo here : http://addictedtor.free.fr/misc/rcpp/foo_1.0.tar.gz Romain
Romain Francois Professional R Enthusiast +33(0) 6 28 91 30 30 http://romainfrancois.blog.free.fr |- http://bit.ly/99bz5D : highlight 0.1-9 |- http://bit.ly/9CQ66r : RMetrics 2010 `- http://bit.ly/bklUXt : RcppArmadillo 0.2.1 -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: dollarnames.diff URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20100529/beae8e39/attachment.pl>