It seems Joris is right. The following patch seems to solve the issue for me:
diff --git a/R/attributes.R b/R/attributes.R index e7f4ab9..18ebdab 100644 --- a/R/attributes.R +++ b/R/attributes.R @@ -156,6 +156,7 @@ make_getter_setters <- function(attr_name, attr_type = c('cell', 'row', 'col', ' ) # end switch lapply(names(funs), function (x) { + environment(funs[[x]]) <- getNamespace('huxtable') assign(x, funs[[x]], envir = getNamespace('huxtable')) }) Iñaki El mié., 4 jul. 2018 a las 21:34, Duncan Murdoch (<murdoch.dun...@gmail.com>) escribió: > > On 04/07/2018 3:23 PM, Joris Meys wrote: > > I just took a look at your repo, and two remarks: > > > > - you use roxygen, and used both @export and @S3method. The latter one is > > deprecated, so you should use only @export, or @method (see eg Hadley's > > answer here : https://github.com/klutometis/roxygen/issues/741 ) > > > > - You're using some code in attributes.R that should generate all the > > getters and setters automatically, but it looks as if these objects aren't > > generated in the right order/environment/... to be registered correctly. > > > > The part where I get confused, is the following. After installing: > > > >> ht <- huxtable(a = 1:3, b = 1:3) > >> align(ht) > > Error in UseMethod("align") : > > no applicable method for 'align' applied to an object of class > > "c('huxtable', 'data.frame')" > >> methods(align) > > [1] align.huxtable* > > see '?methods' for accessing help and source code > >> getFromNamespace("align.huxtable","huxtable") > > function (ht) > > attr(ht, "align") > > <bytecode: 0x0000000015f8bb88> > > <environment: 0x0000000016840c18> > > > > The last line is what bothers me. That should be > > <environment:namespace:huxtable>, like this: > > > >> environment(huxtable) > > <environment: namespace:huxtable> > > > > So you generate the functions, they somehow get registered but they get > > created in the wrong environment as far as I can tell. That's where I would > > start looking. > > > > That shouldn't matter. That function was created in a local environment > whose parent is <environment: namespace:huxtable> (probably by the > huxtable:::make_setter_getters function, but I didn't check). > > Duncan Murdoch > > > > > CHeers > > Joris > > > > > > On Wed, Jul 4, 2018 at 8:12 PM, David Hugh-Jones <davidhughjo...@gmail.com> > > wrote: > > > >> I figured that. Actually I just tried this. I now get the interesting > >> result that all calls to a generic fail with the UseMethod error...? > >> > >> On Wed, 4 Jul 2018 at 16:12, Joris Meys <joris.m...@ugent.be> wrote: > >> > >>> On Wed, Jul 4, 2018 at 4:22 PM, Hadley Wickham <h.wick...@gmail.com> > >>> wrote: > >>> > >>>> I don't think it's related to the error, but you shouldn't be exporting > >>>> this: > >>>> > >>>> export("align<-.huxtable") > >>>> > >>>> You should generally only export the method. > >>>> > >>> > >>> Hadley means to say that you should generally only export the generic, > >>> not the individual methods. > >>> More information here: > >>> > >>> https://cran.r-project.org/doc/manuals/R-exts.html#Registering-S3-methods > >>> > >>> Cheers > >>> Joris > >>> -- > >>> Joris Meys > >>> Statistical consultant > >>> > >>> Department of Data Analysis and Mathematical Modelling > >>> Ghent University > >>> Coupure Links 653, B-9000 Gent (Belgium) > >>> > >>> <https://maps.google.com/?q=Coupure+links+653,%C2%A0B-9000+Gent,%C2%A0Belgium&entry=gmail&source=g> > >>> > >>> tel: +32 (0)9 264 61 79 > >>> ----------- > >>> Biowiskundedagen 2017-2018 > >>> http://www.biowiskundedagen.ugent.be/ > >>> > >>> ------------------------------- > >>> Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php > >>> > >> -- > >> Sent from Gmail Mobile > >> > > > > > > > > ______________________________________________ > R-package-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-package-devel -- Iñaki Úcar http://www.enchufa2.es @Enchufa2 ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel