Here's what this would look like when genericized into an imaginary
API: http://gist.github.com/24571

A couple of things:

(1) I'm altogether in favor of this new approach, but it will result
in less "implicit" organization of code. A reader of the code will
likely find it harder to scan for the specific method they're looking
for. We'll probably have to address this by marking code "sections"
with comments.

(2) Also, it now becomes less clear where a PDoc block would go.
Technically, it would go at the bottom, where the external API is
created, but that'd separate it from the "logic" of the function and
would therefore make it more likely for the code and the docs to get
out of sync.

(Perhaps PDoc blocks can be used to demarcate, thereby solving both of
these problems.)

(3) Simple capability/quirk checks, as in the String#escapeHTML
example, can go directly into the conditional. More complex checks,
like the kind kangax has been working on, will need to be wrapped in
anonymous functions and distilled into booleans. I'd prefer these
booleans to have the naming conventions of constants (e.g.,
TREATS_ATTRIBUTES_AS_EXPANDO_PROPERTIES) so that they can be
recognized easily in the code.

Cheers,
Andrew

On Nov 13, 6:28 am, "T.J. Crowder" <[EMAIL PROTECTED]> wrote:
> Hi Tobie,
>
> > I'm actually interested in the pattern, not in the actual code.
>
> Yeah, just wanted to make sure we were looking at the right code
> first.
>
> > I investigated a bit more re the typos you mentioned. It happens to be
> > an issue with gist which... escaped some of the strings.
>
> Lovely.
>
> So stating the obvious:  The basics are:
>
> 1. Use named functions for each variant.
>
> 2. Define the functions up front.
>
> 3. Test proactive, in an appropriate order, and use the first one that
> works correctly.
>
> Right?
>
> -- T.J.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype: Core" group.
To post to this group, send email to prototype-core@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/prototype-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to