Missing the point. The method already exists and has other callers,
who pass separate arguments by name or position. I'm not redesigning
its API to take an array of arguments. I want to generically pass in a
set of ordered arguments to it.

Dave

On Wed, Oct 6, 2010 at 1:57 PM, Michael Grant <[email protected]> wrote:
>
> I gave you a perfectly viable, easy to implement solution.
>
>
>
>
> On Wed, Oct 6, 2010 at 1:55 PM, enigment <[email protected]> wrote:
>
>>
>> Imagine an SES URL processor somewhat analogous to what Django
>> provides, with a regex match that captures specific segments of the
>> incoming URL and passes them to the requested method. Yes I know about
>> ColdCourse, and the related ColdBox plugin etc, I was just thinking
>> about alternate approaches.
>>
>> So yes, maybe it's unusual, but not irrational, or due to lack of
>> structure in my code.
>>
>> Please, can we not debate my motivation any more? If there are any
>> actual answers to the original question, I'd be interested in hearing
>> them, but frankly I doubt it. I've been doing CF for quite a while,
>> and didn't know of one, so I thought I'd ask around, but this keeps
>> focusing on "larger issues". That's a Good Thing in many cases, but
>> actually not here. I'm asking if there's a language feature I'm not
>> aware of to accomplish this, nothing more.
>>
>> Dave
>>
>>
>> On Wed, Oct 6, 2010 at 1:34 PM, Michael Grant <[email protected]> wrote:
>> >
>> > It's also pretty unusual to not have any idea how many arguments you are
>> > passing into a method. There are many more elegant approaches to your
>> switch
>> > suggestion. The primary one being writing code that has structure and
>> passes
>> > in the expected amount of arguments each time. Another one would be that
>> > since you know how many arguments you are expecting in the method perhaps
>> > write a function to loop over and pad your array with null values if they
>> > aren't defined. Then your call to the method can always pass in the
>> expected
>> > amount of arguments.
>> >
>> >
>> >
>> >
>> > On Wed, Oct 6, 2010 at 1:13 PM, enigment <[email protected]> wrote:
>> >
>> >>
>> >> It's unusual for a method to take an array of its arguments, rather
>> >> than individual ones. Situation is something like a dispatcher; the
>> >> methods already have defined arguments, say Widgets.search(widgetName,
>> >> widgetCategory, widgetID). It'd be pretty weird for it to take an
>> >> array containing those three arguments. The layer I'm talking about
>> >> wants to call that, but only has an array of argument values, in
>> >> order.
>> >>
>> >> Not to be cranky, but while there's room for debate on why I want to
>> >> do this, this isn't that conversation. If there's no more elegant
>> >> approach than the switch strategy I mentioned, I'll probably ditch
>> >> this entire route. I first wanted to check if anyone could think of a
>> >> way to accomplish this in the CFML language, out of curiosity and to
>> >> maybe learn something that might be useful some day, as well to get it
>> >> done -- there's lots of smart and experienced folks out there. I
>> >> didn't mean to discuss whether it's worth doing.
>> >>
>> >> Thanks,
>> >> Dave
>> >>
>> >> On Wed, Oct 6, 2010 at 12:42 PM, Michael Grant <[email protected]> wrote:
>> >> >
>> >> > Dave,
>> >> >
>> >> > Why don't you just pass in the array?
>> >> >
>> >> > <cfset positionalArgs = ['foo', 'bar', 42] />
>> >> > <cfset myFunction(positionalArgs) />
>> >> > <cffunction name="myFunction">
>> >> > <cfargument name="positionalArgs" type="array">
>> >> > <cfloop from="1" to="#arraylen(positionalArgs)#" index="x">
>> >> >  <cfdump var="#x#: #positionalArgs[x]#"><br />
>> >> > </cfloop>
>> >> > </cffunction>
>> >> >
>> >> >
>> >> > On Wed, Oct 6, 2010 at 12:38 PM, enigment <[email protected]> wrote:
>> >> >
>> >> >>
>> >> >> @Michael: What I'm looking for is the positional equivalent of
>> >> >> argumentCollection. If it wasn't for that, you'd think the same about
>> >> >> passing a structure of arguments -- any object you pass will be
>> >> >> treated as a single argument. But argumentCollection trumps that. I
>> >> >> even tried a structure with keys 1, 2, 3, and passing that as
>> >> >> argumentCollection (unnamed arguments appear inside the function as
>> 1,
>> >> >> 2, and 3 if you dump arguments), no joy.
>> >> >>
>> >> >> @Jason: Clearly, calling a method three times, each time with one
>> >> >> argument, is very different than calling it once with all three. Say
>> >> >> they're search fields, lastName, FirstName, ZIP; you want the search
>> >> >> to run with all three of them in place, not separately for each one.
>> >> >> (Not sure why you went with an iterator rather than just indexing
>> over
>> >> >> the array, but it doesn't matter, not what I need to do.)
>> >> >>
>> >> >> Thanks for the ideas though. This just may not be possible.
>> >> >>
>> >> >> Dav
>> >>
>> >>
>> >
>> >
>>
>>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:337916
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to