View Task #580

Summary: Simplify base_comp exception logic

Difficulty: 1    Version goal: 1.4   
Status: Assigned    Owner: jswartz   

Description
Right now the base_comp always changes to a called component except when:

    * a component call is made to a component object

* a component call is made to SELF:x or PARENT:x or REQUEST:x * a component call is made to a subcomponent (<%def>)

I would like to eliminate the component object and REQUEST: exceptions.

The component object exception is completely arbitrary, and I've seen several folks get bitten by this when they innocuously change from using a component path to a component object for performance or other legitimate reasons.

The REQUEST: exception is inconsistent with other method calls; the base_comp should change to the request component in this case.

This would mean base_comp would change to the called component except when:

    * a component call is made to SELF:x or PARENT:x

* a component call is made to a subcomponent (<%def>)

which are both perfectly reasonable exceptions. If you want to manually keep the same base_comp, you can pass {base_comp=>$m->base_comp} as a modifier.

This is a backward incompatibility, which is why it needs to be done in a major version.

History

Apr 18, 2005 01:55 PM   Jonathan Swartz created task.
Apr 18, 2005 01:55 PM   Jonathan Swartz set owner to jswartz.
Apr 18, 2005 01:57 PM   Jonathan Swartz changed version_goal from 1.3x to 1.29_02.
Jun 22, 2005 06:16 AM   Jonathan Swartz changed version_goal from 1.29_02 to 1.4.
Jun 22, 2005 06:16 AM   Jonathan Swartz writes: I don't have the strength to introduce another backward compatibility just yet. :)