Which methods you propose for the library are entirely up to you. The
development team will make the ultimate decision if they want to
include them or make efficiency modifications. i was just offering a
tweak to #compact to make it work as described. :)

Good luck!
-joe t.


On Nov 13, 12:19 pm, jacoz <jacopo.nu...@gmail.com> wrote:
> Hi Joe T.,
> well, I've followed your suggests and so (I remember you the 
> linkhttp://tr.im/EBEP):
> - updated Array#compact
> - updated Element#ajaxRequest
> - added Element#ajaxUpdate
>
> So now you have an empty function when using #ajaxRequest, and the
> update function when using #ajaxUpdate!
> Is that good, according to you?
>
> Which methods would you suggest me to propose?
>
> Thank you so much!
> Jacopo.
>
> On Nov 13, 4:49 pm, "joe t." <thooke...@gmail.com> wrote:
>
> > i agree with a lot of Eric's points so far. There are some
> > interesting, and possibly useful utility methods in this, but there
> > are others that would needlessly bloat an already fairly bloated
> > library (don't get me wrong, i still love it). The thing i would point
> > out for #ajaxRequest is similar to Eric's point: by embedding an
> > onSuccess call, you force the user to either replace it with their own
> > callback, or pass an empty function just to make it not do the default
> > element update. It's usually better practice to minimize the amount of
> > required options and let the user include more as they need them. i
> > actually don't do element updates from Ajax request as a frequent
> > practice, so this modification would harm my code overhead.
>
> > Also, as a minor clarification: in #compact, the "strict" argument
> > name should be changed to "aggressive". ("    ") is not "strictly" an
> > empty string. It's just 100% white space. Seems like nitpicking, but
> > with other mentions of helping novice coders understand more about JS
> > libraries, consistent semantics are a huge part of that.
>
> > Eric's right about using tests outside loops, but there are a couple
> > issue with the proposed correction:
> > 1. From the original, value.strip() is wrong, because #strip() doesn't
> > exist for non-string values.
>
> > 2. Several values are false-ish, so they get removed from the results
> > even without the aggressive argument. If the intent of this #compact
> > method is to only remove null/undefined in lazy mode, Prototype.K
> > won't work. Returning "" to the select() comparison ends up false, so
> > "" gets dropped.
>
> > Suggested:
> > compact(aggressive){
> >   return this.select(aggressive === true ?
> >     function(v){return v != null && v.toString().strip() != ''} :
> >     function(v){return v !== null && v !== undefined}
> >   )
>
> > }
>
> > The adjustment ensures that the intent of only stripping null and
> > undefined remains intact, since so many values can evaluate to false-
> > ish ("", 0, [], etc). And mentioning zero, what if there's desire to
> > be super-aggressive and remove those, or also remove actual boolean
> > falses? :)
> > -joe t.
>
> > On Nov 13, 8:07 am, Eric <lefauv...@gmail.com> wrote:
>
> > > Hi Jacopo,
>
> > > On Nov 12, 4:29 pm, jacoz <jacopo.nu...@gmail.com> wrote:
>
> > > > Hi Eric,
> > > > thanks for your suggests!
> > > > Well, now I answer all of your questions ;)
> > > > - I named Element.ajaxRequest() in that way because by default it
> > > > updates the element, but you can change the "onSuccess" function!
>
> > > OK, but if you don't change the element in the onSuccess, there is no
> > > point using this method instead of Ajax.Request.
>
> > > > - I've written String#len and String#getType because some newbies may
> > > > not knows that attributes ;)
>
> > > Well, you must not forget that every single byte you add to the
> > > library will be loaded by every single page using the library.
> > > Peoples are already complaining because prototype is "big", so if we
> > > start to add useless things, it will be worst.
> > > Moreover, newbies should better learn about length and the DOM
> > > attributes instead of some exotic name not portable (and slower)
> > > methods
>
> > > > - I've re-written Array#compact: now the control is not recursive
>
> > > It wasn't recursive, it was slow :o)
>
> > > But still, "return value != null" is the same than "return value" (at
> > > least when passed to Enumerable.select) and it is exactly what
> > > Prototype.K function does.
>
> > > > (thanks)
>
> > > > Here is the code:http://tr.im/EBEPtheArray#comapctstartsat at
> > > > line 128
>
> > > > Which methods do you suggest me to propose??
>
> > > Well it is up to you, but Element.ajaxUpdate, Object.isBoolean or your
> > > change to Array.compact sounds like useful features to me.
>
> > > Eric
>
> > > > Thanks,
> > > > Jacopo.
>
> > > > On Nov 12, 11:15 am, Eric <lefauv...@gmail.com> wrote:
>
> > > > > Hi,
>
> > > > > This has some nice ideas like Element.ajaxRequest() (which I would
> > > > > have called Element.ajaxUpdate() since it is what it does :o) ), but
> > > > > also some features I fail to see any utility to.
> > > > > I.E., what's the point to use 'string'.len() instead of
> > > > > 'string'.length?
> > > > > Same thing for $('someElement').getType() instead of $
> > > > > ('someElement').nodeName
>
> > > > > Also, try to limit the impact on performances by avoiding tests in
> > > > > loops when you can do them outside of the loop.
> > > > > I.E, in your Array.compact version, you may replace :
> > > > >   compact: function(strict) {
> > > > >     return this.select(function(value) {
> > > > >       return strict === true ? value != null && value.strip() != '' :
> > > > > value != null;
> > > > >     });}
> > > > > ...by something like:
> > > > >   compact: function(strict) {
> > > > >     return this.select(strict === true ? function(value) { return
> > > > > value != null && value.strip() != '' } : Prototype.K);}
>
> > > > > The procedure to submit contributions is described 
> > > > > here:http://www.prototypejs.org/contribute
> > > > > You may propose some of yours (I'd recommend proposing only the more
> > > > > interesting methods) once you've validated that they don't break the
> > > > > test cases.
>
> > > > > HTH,
> > > > > Eric
>
> > > > > On Nov 10, 10:07 am, Jacopo Andrea Nuzzi <jacopo.nu...@gmail.com>
> > > > > wrote:
>
> > > > > > Hi Tobie,
> > > > > > thanks for you suggest: here it is:http://tr.im/EBEP
>
> > > > > > Jacopo
>
> > > > > > On Mon, Nov 9, 2009 at 9:35 PM, Tobie Langel 
> > > > > > <tobie.lan...@gmail.com> wrote:
>
> > > > > > > Hi jacoz,
>
> > > > > > > Seems like your Array#add would benefit from using Array#splice.
>
> > > > > > >https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Object...
>
> > > > > > > Best,
>
> > > > > > > Tobie
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to