Re: Positional argument collection

2010-10-06 Thread Michael Grant

I'm not exactly sure what you're asking but would some variation of this
work for you?

SomeComponent.someMethod(ArrayToList(positionalArgs));

Of course you may need to qualify the list etc if you are passing strings,
but I think that suits your example.


On Wed, Oct 6, 2010 at 10:54 AM, enigment enigm...@gmail.com wrote:


 Say I have an array of values, arbitrary length, that I want to pass
 as the arguments to a method.

 For example, with this:
  positionalArgs = ['foo', 'bar', 42]; // this varies, may be any length
 I want to make this call:
  SomeComponent.someMethod('foo', 'bar', 42);

 Is there a positional equivalent to argumentCollection, or some other
 language construct that I don't know about to do this? If the
 arguments were in a structure, I could pass it as the
 argumentCollection, but I don't know how to do this by position in a
 clean way.

 Only thing I thought of is a switch statement with some finite number
 of cases, each of which calls the method with a specific number of
 arguments, like this (partial):
   case 2:
  SomeComponent.someMethod(positionalArgs[1], positionalArgs[2]);
  break;
   case 3:
  SomeComponent.someMethod(positionalArgs[1], positionalArgs[2],
 positionalArgs[3]);
  break;
   etc...

 Any thoughts? Thanks,

 Dave

 

~|
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:337899
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread enigment

Thanks for chiming in Michael.

Using ArrayToList would pass all three values as a single string. I'm
looking for a generic way to pass each array element as an individual
argument, regardless of how many there are. Take another look at the
examples I gave.

Dave

On Wed, Oct 6, 2010 at 11:02 AM, Michael Grant mgr...@modus.bz wrote:

 I'm not exactly sure what you're asking but would some variation of this
 work for you?

 SomeComponent.someMethod(ArrayToList(positionalArgs));

 Of course you may need to qualify the list etc if you are passing strings,
 but I think that suits your example.


 On Wed, Oct 6, 2010 at 10:54 AM, enigment enigm...@gmail.com wrote:


 Say I have an array of values, arbitrary length, that I want to pass
 as the arguments to a method.

 For example, with this:
  positionalArgs = ['foo', 'bar', 42]; // this varies, may be any length
 I want to make this call:
  SomeComponent.someMethod('foo', 'bar', 42);

 Is there a positional equivalent to argumentCollection, or some other
 language construct that I don't know about to do this? If the
 arguments were in a structure, I could pass it as the
 argumentCollection, but I don't know how to do this by position in a
 clean way.

 Only thing I thought of is a switch statement with some finite number
 of cases, each of which calls the method with a specific number of
 arguments, like this (partial):
   case 2:
      SomeComponent.someMethod(positionalArgs[1], positionalArgs[2]);
      break;
   case 3:
      SomeComponent.someMethod(positionalArgs[1], positionalArgs[2],
 positionalArgs[3]);
      break;
   etc...

 Any thoughts? Thanks,

 Dave



 

~|
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:337901
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


RE: Positional argument collection

2010-10-06 Thread Jason Durham

This is untested...

SomeComponent.someMethod(evaluate(ArrayToList(positionalArgs)));


-Original Message-
From: enigment [mailto:enigm...@gmail.com]
Sent: Wednesday, October 06, 2010 10:48 AM
To: cf-talk
Subject: Re: Positional argument collection


Thanks for chiming in Michael.

Using ArrayToList would pass all three values as a single string. I'm
looking for a generic way to pass each array element as an individual
argument, regardless of how many there are. Take another look at the
examples I gave.

Dave

On Wed, Oct 6, 2010 at 11:02 AM, Michael Grant mgr...@modus.bz wrote:

 I'm not exactly sure what you're asking but would some variation of
 this work for you?

 SomeComponent.someMethod(ArrayToList(positionalArgs));

 Of course you may need to qualify the list etc if you are passing
 strings, but I think that suits your example.


 On Wed, Oct 6, 2010 at 10:54 AM, enigment enigm...@gmail.com wrote:


 Say I have an array of values, arbitrary length, that I want to pass
 as the arguments to a method.

 For example, with this:
  positionalArgs = ['foo', 'bar', 42]; // this varies, may be any
 length I want to make this call:
  SomeComponent.someMethod('foo', 'bar', 42);

 Is there a positional equivalent to argumentCollection, or some other
 language construct that I don't know about to do this? If the
 arguments were in a structure, I could pass it as the
 argumentCollection, but I don't know how to do this by position in a
 clean way.

 Only thing I thought of is a switch statement with some finite number
 of cases, each of which calls the method with a specific number of
 arguments, like this (partial):
   case 2:
  SomeComponent.someMethod(positionalArgs[1], positionalArgs[2]);
  break;
   case 3:
  SomeComponent.someMethod(positionalArgs[1], positionalArgs[2],
 positionalArgs[3]);
  break;
   etc...

 Any thoughts? Thanks,

 Dave







~|
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:337902
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread Michael Grant

So parse the list inside your method. Or create an argument collection out
of your array and pass it in.


On Wed, Oct 6, 2010 at 11:47 AM, enigment enigm...@gmail.com wrote:


 Thanks for chiming in Michael.

 Using ArrayToList would pass all three values as a single string. I'm
 looking for a generic way to pass each array element as an individual
 argument, regardless of how many there are. Take another look at the
 examples I gave.

 Dave

 On Wed, Oct 6, 2010 at 11:02 AM, Michael Grant mgr...@modus.bz wrote:
 
  I'm not exactly sure what you're asking but would some variation of this
  work for you?
 
  SomeComponent.someMethod(ArrayToList(positionalArgs));
 
  Of course you may need to qualify the list etc if you are passing
 strings,
  but I think that suits your example.
 
 
  On Wed, Oct 6, 2010 at 10:54 AM, enigment enigm...@gmail.com wrote:
 
 
  Say I have an array of values, arbitrary length, that I want to pass
  as the arguments to a method.
 
  For example, with this:
   positionalArgs = ['foo', 'bar', 42]; // this varies, may be any length
  I want to make this call:
   SomeComponent.someMethod('foo', 'bar', 42);
 
  Is there a positional equivalent to argumentCollection, or some other
  language construct that I don't know about to do this? If the
  arguments were in a structure, I could pass it as the
  argumentCollection, but I don't know how to do this by position in a
  clean way.
 
  Only thing I thought of is a switch statement with some finite number
  of cases, each of which calls the method with a specific number of
  arguments, like this (partial):
case 2:
   SomeComponent.someMethod(positionalArgs[1], positionalArgs[2]);
   break;
case 3:
   SomeComponent.someMethod(positionalArgs[1], positionalArgs[2],
  positionalArgs[3]);
   break;
etc...
 
  Any thoughts? Thanks,
 
  Dave
 
 
 
 

 

~|
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:337903
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread Michael Grant

As you can see anything you put in the args that's derived from CF is going
to be treated as arg1.

cfset positionalArgs = ['foo', 'bar', 42]
cfdump var=#positionalArgs#
cfdump var=#ListQualify(ArrayToList(positionalArgs),')#

cfset myFunction(ListQualify(ArrayToList(positionalArgs),'))

cffunction name=myFunction
 cfargument name=arg1 required=false default=not defined
cfargument name=arg2 required=false default=not defined
 cfargument name=arg3 required=false default=not defined
 cfdump var=arg1: #arg1#
cfdump var=arg2: #arg2#
 cfdump var=arg3: #arg3#
/cffunction


~|
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:337906
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


RE: Positional argument collection

2010-10-06 Thread Jason Durham

Whoops.. read the rest of the email below.

var I = positionalArgs.iterator();
var arg = ;

while( i.hasNext() ) {
arg = i.next();
SomeComponent.someMethod(arg);
}

That will call someMethod() for each array value.  You could use a For loop
with i LTE arrayLen(positionalArg) if you don't want to use iterator().

-Original Message-
From: enigment [mailto:enigm...@gmail.com]
Sent: Wednesday, October 06, 2010 10:48 AM
To: cf-talk
Subject: Re: Positional argument collection


Thanks for chiming in Michael.

Using ArrayToList would pass all three values as a single string. I'm
looking for a generic way to pass each array element as an individual
argument, regardless of how many there are. Take another look at the
examples I gave.

Dave

On Wed, Oct 6, 2010 at 11:02 AM, Michael Grant mgr...@modus.bz wrote:

 I'm not exactly sure what you're asking but would some variation of
 this work for you?

 SomeComponent.someMethod(ArrayToList(positionalArgs));

 Of course you may need to qualify the list etc if you are passing
 strings, but I think that suits your example.


 On Wed, Oct 6, 2010 at 10:54 AM, enigment enigm...@gmail.com wrote:


 Say I have an array of values, arbitrary length, that I want to pass
 as the arguments to a method.

 For example, with this:
  positionalArgs = ['foo', 'bar', 42]; // this varies, may be any
 length I want to make this call:
  SomeComponent.someMethod('foo', 'bar', 42);

 Is there a positional equivalent to argumentCollection, or some other
 language construct that I don't know about to do this? If the
 arguments were in a structure, I could pass it as the
 argumentCollection, but I don't know how to do this by position in a
 clean way.

 Only thing I thought of is a switch statement with some finite number
 of cases, each of which calls the method with a specific number of
 arguments, like this (partial):
   case 2:
  SomeComponent.someMethod(positionalArgs[1], positionalArgs[2]);
  break;
   case 3:
  SomeComponent.someMethod(positionalArgs[1], positionalArgs[2],
 positionalArgs[3]);
  break;
   etc...

 Any thoughts? Thanks,

 Dave







~|
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:337907
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread enigment

@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.

Dave

On Wed, Oct 6, 2010 at 12:15 PM, Jason Durham jdur...@cti-stl.com wrote:

 Whoops.. read the rest of the email below.

 var I = positionalArgs.iterator();
 var arg = ;

 while( i.hasNext() ) {
        arg = i.next();
        SomeComponent.someMethod(arg);
 }

 That will call someMethod() for each array value.  You could use a For loop
 with i LTE arrayLen(positionalArg) if you don't want to use iterator().

 -Original Message-
 From: enigment [mailto:enigm...@gmail.com]
 Sent: Wednesday, October 06, 2010 10:48 AM
 To: cf-talk
 Subject: Re: Positional argument collection


 Thanks for chiming in Michael.

 Using ArrayToList would pass all three values as a single string. I'm
 looking for a generic way to pass each array element as an individual
 argument, regardless of how many there are. Take another look at the
 examples I gave.

 Dave

 On Wed, Oct 6, 2010 at 11:02 AM, Michael Grant mgr...@modus.bz wrote:

 I'm not exactly sure what you're asking but would some variation of
 this work for you?

 SomeComponent.someMethod(ArrayToList(positionalArgs));

 Of course you may need to qualify the list etc if you are passing
 strings, but I think that suits your example.


 On Wed, Oct 6, 2010 at 10:54 AM, enigment enigm...@gmail.com wrote:


 Say I have an array of values, arbitrary length, that I want to pass
 as the arguments to a method.

 For example, with this:
  positionalArgs = ['foo', 'bar', 42]; // this varies, may be any
 length I want to make this call:
  SomeComponent.someMethod('foo', 'bar', 42);

 Is there a positional equivalent to argumentCollection, or some other
 language construct that I don't know about to do this? If the
 arguments were in a structure, I could pass it as the
 argumentCollection, but I don't know how to do this by position in a
 clean way.

 Only thing I thought of is a switch statement with some finite number
 of cases, each of which calls the method with a specific number of
 arguments, like this (partial):
   case 2:
      SomeComponent.someMethod(positionalArgs[1], positionalArgs[2]);
      break;
   case 3:
      SomeComponent.someMethod(positionalArgs[1], positionalArgs[2],
 positionalArgs[3]);
      break;
   etc...

 Any thoughts? Thanks,

 Dave







 

~|
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:337909
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread Michael Grant

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 enigm...@gmail.com 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.

 Dave

 On Wed, Oct 6, 2010 at 12:15 PM, Jason Durham jdur...@cti-stl.com wrote:
 
  Whoops.. read the rest of the email below.
 
  var I = positionalArgs.iterator();
  var arg = ;
 
  while( i.hasNext() ) {
 arg = i.next();
 SomeComponent.someMethod(arg);
  }
 
  That will call someMethod() for each array value.  You could use a For
 loop
  with i LTE arrayLen(positionalArg) if you don't want to use iterator().
 
  -Original Message-
  From: enigment [mailto:enigm...@gmail.com]
  Sent: Wednesday, October 06, 2010 10:48 AM
  To: cf-talk
  Subject: Re: Positional argument collection
 
 
  Thanks for chiming in Michael.
 
  Using ArrayToList would pass all three values as a single string. I'm
  looking for a generic way to pass each array element as an individual
  argument, regardless of how many there are. Take another look at the
  examples I gave.
 
  Dave
 
  On Wed, Oct 6, 2010 at 11:02 AM, Michael Grant mgr...@modus.bz wrote:
 
  I'm not exactly sure what you're asking but would some variation of
  this work for you?
 
  SomeComponent.someMethod(ArrayToList(positionalArgs));
 
  Of course you may need to qualify the list etc if you are passing
  strings, but I think that suits your example.
 
 
  On Wed, Oct 6, 2010 at 10:54 AM, enigment enigm...@gmail.com wrote:
 
 
  Say I have an array of values, arbitrary length, that I want to pass
  as the arguments to a method.
 
  For example, with this:
   positionalArgs = ['foo', 'bar', 42]; // this varies, may be any
  length I want to make this call:
   SomeComponent.someMethod('foo', 'bar', 42);
 
  Is there a positional equivalent to argumentCollection, or some other
  language construct that I don't know about to do this? If the
  arguments were in a structure, I could pass it as the
  argumentCollection, but I don't know how to do this by position in a
  clean way.
 
  Only thing I thought of is a switch statement with some finite number
  of cases, each of which calls the method with a specific number of
  arguments, like this (partial):
case 2:
   SomeComponent.someMethod(positionalArgs[1], positionalArgs[2]);
   break;
case 3:
   SomeComponent.someMethod(positionalArgs[1], positionalArgs[2],
  positionalArgs[3]);
   break;
etc...
 
  Any thoughts? Thanks,
 
  Dave
 
 
 
 
 
 
 
 

 

~|
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:337910
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread enigment

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 mgr...@modus.bz 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 enigm...@gmail.com 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:337912
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread Michael Grant

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 enigm...@gmail.com 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 mgr...@modus.bz 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 enigm...@gmail.com 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:337913
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread enigment

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 mgr...@modus.bz 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 enigm...@gmail.com 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 mgr...@modus.bz 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 enigm...@gmail.com 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:337914
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread Michael Grant

I gave you a perfectly viable, easy to implement solution.




On Wed, Oct 6, 2010 at 1:55 PM, enigment enigm...@gmail.com 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 mgr...@modus.bz 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 enigm...@gmail.com 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 mgr...@modus.bz 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 enigm...@gmail.com 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:337915
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread enigment

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 mgr...@modus.bz wrote:

 I gave you a perfectly viable, easy to implement solution.




 On Wed, Oct 6, 2010 at 1:55 PM, enigment enigm...@gmail.com 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 mgr...@modus.bz 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 enigm...@gmail.com 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 mgr...@modus.bz 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 enigm...@gmail.com 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


Re: Positional argument collection

2010-10-06 Thread Dave Watts

 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.

How about writing a new method that takes two arguments: the name of
the method you want it to call and an array of arguments. This method
could then build a method call to the original method, and write the
values positionally by iterating through the array. Presumably, you'd
plop this method in a utility CFC, rather than in the original CFCs.
Or, you could add it to the superclass so that it's present through
your class hierarchy.

Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/
http://training.figleaf.com/

Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on
GSA Schedule, and provides the highest caliber vendor-authorized
instruction at our training centers, online, or onsite.

~|
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:337917
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread Michael Grant

Re-read my last post. If you know that the method will accept x number of
arguments. And your array may have anywhere from 1 to x possible values then
write a function to pad your array with (x - arraylen) null values.


Like this:

cfset positionalArgs = ['foo', 'bar', 42]

cfset positionalArgs = padMyArray(positionalArgs,10) /

cfset myFunction(positionalArgs[1], positionalArgs[2], positionalArgs[3],
positionalArgs[4], positionalArgs[5], positionalArgs[6], positionalArgs[7],
positionalArgs[8], positionalArgs[9], positionalArgs[10] )

cffunction name=padMyArray
cfargument name=arrIN type=array required=true
 cfargument name=arrLen type=numeric required=true

cfloop from=#arraylen(arrIN)# to=#arrlen# index=x
cfset ArrayAppend(arrIN,)
 /cfloop
 cfreturn arrIN /
/cffunction

cffunction name=myFunction
cfargument name=arg1 required=false default=not defined
 cfargument name=arg2 required=false default=not defined
cfargument name=arg3 required=false default=not defined
 cfargument name=arg4 required=false default=not defined
cfargument name=arg5 required=false default=not defined
 cfargument name=arg6 required=false default=not defined
cfargument name=arg7 required=false default=not defined
 cfargument name=arg8 required=false default=not defined
cfargument name=arg9 required=false default=not defined
 cfargument name=arg10 required=false default=not defined
 cfdump var=arg1: #arg1#
cfdump var=arg2: #arg2#
 cfdump var=arg3: #arg3#
cfdump var=arg4: #arg4#
 cfdump var=arg5: #arg5#
cfdump var=arg6: #arg6#
 cfdump var=arg7: #arg7#
cfdump var=arg8: #arg8#
 cfdump var=arg9: #arg9#
cfdump var=arg10: #arg10#
/cffunction



On Wed, Oct 6, 2010 at 2:16 PM, enigment enigm...@gmail.com wrote:


 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 mgr...@modus.bz wrote:
 
  I gave you a perfectly viable, easy to implement solution.
 
 
 
 
  On Wed, Oct 6, 2010 at 1:55 PM, enigment enigm...@gmail.com 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 mgr...@modus.bz 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 enigm...@gmail.com 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 mgr...@modus.bz
 wrote:
   
Dave,
   
Why don't you just pass in the array?
   
cfset positionalArgs = ['foo', 'bar', 42] /
 

Re: Positional argument collection

2010-10-06 Thread enigment

Hmmm, not sure what you mean by build a method call to the original
method, and write the values positionally by iterating through the
array. Do you mean write it out to disk or VFS? I'd thought of that,
but wasn't super fond of the idea, since unless I'm missing something,
you'd have to do that for every supported number of arguments for
every publicly accessible method in the app.

Or maybe I'm just not on your wavelength here.

Dave

On Wed, Oct 6, 2010 at 2:24 PM, Dave Watts dwa...@figleaf.com wrote:

 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.

 How about writing a new method that takes two arguments: the name of
 the method you want it to call and an array of arguments. This method
 could then build a method call to the original method, and write the
 values positionally by iterating through the array. Presumably, you'd
 plop this method in a utility CFC, rather than in the original CFCs.
 Or, you could add it to the superclass so that it's present through
 your class hierarchy.

 Dave Watts, CTO, Fig Leaf Software
 http://www.figleaf.com/
 http://training.figleaf.com/

 Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on
 GSA Schedule, and provides the highest caliber vendor-authorized
 instruction at our training centers, online, or onsite.

~|
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:337919
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread enigment

You're right, I did misread your last post, sorry. But it's still not
super practical as a generic SES-URL-to-method-call dispatcher, unless
I'm still not getting what you mean. You'd need to inspect each method
before you called it to find out how many args it takes, pad the array
out that far, and then you'd still need a switch statement to call the
method with that specific number of arguments. Keying the switch
statement of the actual number of captured URL segments seems simpler
and less overhead.

In other words, whether the variable number of items in the array is
the number of arguments for each individual method, or the number of
URL segments actually captured, the problem of how to generically call
a method with a variable number of arguments remains. Unless you want
to find out the maximum number of arguments passed by *any* method,
and always use that, but by that time I'd think this was too clunky to
consider.

Is there some other way you're thinking of to make the actual call?

Dave

On Wed, Oct 6, 2010 at 2:33 PM, Michael Grant mgr...@modus.bz wrote:

 Re-read my last post. If you know that the method will accept x number of
 arguments. And your array may have anywhere from 1 to x possible values then
 write a function to pad your array with (x - arraylen) null values.


 Like this:

 cfset positionalArgs = ['foo', 'bar', 42]

 cfset positionalArgs = padMyArray(positionalArgs,10) /

 cfset myFunction(positionalArgs[1], positionalArgs[2], positionalArgs[3],
 positionalArgs[4], positionalArgs[5], positionalArgs[6], positionalArgs[7],
 positionalArgs[8], positionalArgs[9], positionalArgs[10] )

 cffunction name=padMyArray
 cfargument name=arrIN type=array required=true
  cfargument name=arrLen type=numeric required=true

 cfloop from=#arraylen(arrIN)# to=#arrlen# index=x
 cfset ArrayAppend(arrIN,)
  /cfloop
  cfreturn arrIN /
 /cffunction

 cffunction name=myFunction
 cfargument name=arg1 required=false default=not defined
  cfargument name=arg2 required=false default=not defined
 cfargument name=arg3 required=false default=not defined
  cfargument name=arg4 required=false default=not defined
 cfargument name=arg5 required=false default=not defined
  cfargument name=arg6 required=false default=not defined
 cfargument name=arg7 required=false default=not defined
  cfargument name=arg8 required=false default=not defined
 cfargument name=arg9 required=false default=not defined
  cfargument name=arg10 required=false default=not defined
  cfdump var=arg1: #arg1#
 cfdump var=arg2: #arg2#
  cfdump var=arg3: #arg3#
 cfdump var=arg4: #arg4#
  cfdump var=arg5: #arg5#
 cfdump var=arg6: #arg6#
  cfdump var=arg7: #arg7#
 cfdump var=arg8: #arg8#
  cfdump var=arg9: #arg9#
 cfdump var=arg10: #arg10#
 

~|
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:337920
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread Dave Watts

 Hmmm, not sure what you mean by build a method call to the original
 method, and write the values positionally by iterating through the
 array. Do you mean write it out to disk or VFS? I'd thought of that,
 but wasn't super fond of the idea, since unless I'm missing something,
 you'd have to do that for every supported number of arguments for
 every publicly accessible method in the app.

No, I didn't mean on disk or VFS, I meant just writing a string of
code and executing it using Evaluate. There might be a more elegant
approach, but that should work. I haven't really read the rest of the
thread that closely, so I'm not sure if someone has basically proposed
the same thing or not.

Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/
http://training.figleaf.com/

Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on
GSA Schedule, and provides the highest caliber vendor-authorized
instruction at our training centers, online, or onsite.

~|
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:337921
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread enigment

No, actually not, unless I missed it. Evaluate is against my religion,
but I might make an exception if there isn't any other way and I care
enough. It's an odd language feature to work around,
argumentCollection (args by name) exists, but there's no positional
equivalent.

Thanks,

Dave

On Wed, Oct 6, 2010 at 3:28 PM, Dave Watts dwa...@figleaf.com wrote:

 Hmmm, not sure what you mean by build a method call to the original
 method, and write the values positionally by iterating through the
 array. Do you mean write it out to disk or VFS? I'd thought of that,
 but wasn't super fond of the idea, since unless I'm missing something,
 you'd have to do that for every supported number of arguments for
 every publicly accessible method in the app.

 No, I didn't mean on disk or VFS, I meant just writing a string of
 code and executing it using Evaluate. There might be a more elegant
 approach, but that should work. I haven't really read the rest of the
 thread that closely, so I'm not sure if someone has basically proposed
 the same thing or not.

 Dave Watts, CTO, Fig Leaf Software
 http://www.figleaf.com/
 http://training.figleaf.com/

 Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on
 GSA Schedule, and provides the highest caliber vendor-authorized
 instruction at our training centers, online, or onsite.

~|
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:337922
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Re: Positional argument collection

2010-10-06 Thread Dave Watts

 No, actually not, unless I missed it. Evaluate is against my religion,
 but I might make an exception if there isn't any other way and I care
 enough. It's an odd language feature to work around,
 argumentCollection (args by name) exists, but there's no positional
 equivalent.

It's not that odd, given that (a) you're the first person I know who's
wanted it, and (b) structures aren't naturally sorted, so without
names who knows where the arguments would be positioned!

Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/
http://training.figleaf.com/

Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on
GSA Schedule, and provides the highest caliber vendor-authorized
instruction at our training centers, online, or onsite.

~|
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:337924
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm