D'oh. No. That was it - no output= property in the cffuntion. I didn't even look there since I set that by default, but must have removed it for debugging at some time. Thanks! Now I feel dumb, but very happy to have a simple resolution. I knew some additional brains would help!
-----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Mark Mandel Sent: Sunday, April 12, 2009 4:37 PM To: [email protected] Subject: [CFCDEV] Re: OnMissingMethod Adding White Space to my getters !? Is your onMM got output="false" on it? Mark On Mon, Apr 13, 2009 at 9:34 AM, Anthony Israel-Davis <[email protected]> wrote: > > I have a bit of a stumper and I'm wondering if anyone can shed some > light on it. I have an object (User.cfc) that extends an object that > contains OnMissingMethod for dynamic get/set operations. It's working > as expected except for one thing, whenever I call user.getSomeValue(), > the string returned has white space prepended to it. > > I've checked to see if it was getting the white space from the > database or from the setter, but that doesn't seem to be it. I've > trimmed the heck out of all the values and even thrown a trim() at the > returned value and the space is still there. Even odder, if I set a > value equal to the returned value, the space disappears. > > Example: > > <cfset userData = user.getInstance()> <!--- Returns instance structure > variables[instance][property] <cfoutput> > 1) -#userData.firstName#-<br> <!--- Displays -Anthony- ---> > 2) -#user.getFirstName()#- <!--- Displays - Anthony- ---> > 3) -#trim(user.getFirstName())#-<br> <!-- Displays - Anthony- even > with > trim() ---> > <cfset fn = user.getFirstName()> > 4) -#fn#- <!--- Displays -Anthony- ---> </cfoutput> > > So 1 and 4 display as expected but 2 and 3 have the space (tab? Line feed? > Space? - I've tried to do an ASC() on it, but get the value 'A' for > the first character) > > My OnMissingMethod is pretty straight forward (I've removed the error > handling for brevity): > --- SNIP --- > switch(left(arguments.missingMethodName, 3)){ > case "get": > propertyName = > replaceNoCase(arguments.missingMethodName, > "get",""); > if (structKeyExists(theVars,propertyName)){ > > return trim(theVars[propertyName]); > } > break; > case "set": > propertyName = > replaceNoCase(arguments.missingMethodName, > "set",""); > if > (structKeyExists(variables["instance"]["properties"],propertyName)){ > theVar = > trim(arguments.missingMethodArguments[1]); > variables["instance"][propertyName] = > trim(theVar); > } else { > getErrorHandler().throw(message="Property > '#propertyName#' expects the '#variables.instance.properties[ > propertyName ]#' data type."); > > } > break; > --- SNIP --- > > If anyone can shed some light on this, it would be most appreciated. > I've been trying everything to no avail but perhaps I'm missing > something obvious that additional eyeball will see. > > Thanks! > > Anthony > > > > -- E: [email protected] W: www.compoundtheory.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CFCDev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cfcdev?hl=en -~----------~----~----~----~------~----~------~--~---
