From murdoch.duncan at gmail.com  Thu Jun 20 00:53:06 2013
From: murdoch.duncan at gmail.com (Duncan Murdoch)
Date: Wed, 19 Jun 2013 18:53:06 -0400
Subject: [Rd] str and s3 classes
In-Reply-To: <CABdHhvH08vczUYU=gkcg4-BHypugmtP7GvgfNgWt5YPmXK0quA@mail.gmail.com>
References: <CABdHhvH08vczUYU=gkcg4-BHypugmtP7GvgfNgWt5YPmXK0quA@mail.gmail.com>
Message-ID: <51C23652.5000204@gmail.com>

On 13-06-19 4:44 PM, Hadley Wickham wrote:
> Hi all,
>
> Because str uses the generic version of length and names, it's
> currently very easy to create objects that break str:
>
> a <- structure(list(1:5), class = "a")
> length.a <- function(x) 2L
>
> str(a)
>
> b <- structure(list(1:5), class = "b")
> names.b <- function(x) character()
>
> str(b)
>
>
> These are obvious toy examples, but it is a real problem if you want
> to create a class that defines names or length in a meaningful way,
> that is incompatible with the underlying data structure.

There are a few problems in the package; I'm not sure if all of them 
have any effect, but it works if I fix them all:

  - you have both inst/doc and vignettes directories.  You should only 
have one of those.

  - Your vignette is named simple.rmd.  The list_files_with_type() 
function isn't looking for the .rmd extension; it only recognizes .Rmd.
That function is used for vignette() and browseVignettes(), but I think 
not for the HTML page you get to from help.start(). It should probably 
be fixed to work with the optional engines, which specify their own 
patterns.  I'll put it on the list of things to fix.

Duncan



[Rd] str and s3 classes
Duncan Murdoch