From romain at r-enthusiasts.com  Sat May 29 13:40:41 2010
From: romain at r-enthusiasts.com (Romain Francois)
Date: Sat, 29 May 2010 13:40:41 +0200
Subject: [Rd] S4 dispatch for .DollarNames (utils)
In-Reply-To: <4C00F8C2.4060508@r-enthusiasts.com>
References: <4C00F8C2.4060508@r-enthusiasts.com>
Message-ID: <4C00FD39.3020707@r-enthusiasts.com>

This seems to do the trick, but it does not feel right:

.onLoad <- function( libname, pkgname ){	
	utils <- asNamespace( "utils" )
	unlockBinding( ".DollarNames", utils )
	assignInNamespace( ".DollarNames", .DollarNames, utils )
	lockBinding( ".DollarNames", utils )
}

Any better idea ?

Romain

Le 29/05/10 13:21, Romain Francois a ?crit :
>
> 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$
>
>
> 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/9CQ66r : RMetrics 2010
|- http://bit.ly/cork4b : highlight 0.1-8
`- http://bit.ly/bklUXt : RcppArmadillo 0.2.1





[Rd] S4 dispatch for .DollarNames (utils)
Romain Francois