ActionView Feedback

Hi all !

I, along with Koz' help and Josh Peek's template handlers, are responsible for the complete (well, almost) ActionView rewrite. The aim was to clean up the code and divide it into multiple classes rather than just one ActionView::Base class which did everything. And thus, making it very easy to write ActionView plugins & new template handlers. For certain cases, performance benefits were there as well.

The purpose of this email is to get feedback from everyone who have dealt with ActionView code before. So, please let us know if you'd like to see any further improvements or if I could have done something in a better fashion.

Here's an overview of current state :

* ActionView::Base - Glue between ActionController and views - Only one object created per request - Holds controller ivars, compiled templates, helpers - has_many :view_paths ( per request and global )

* ActionView::TemplateFInder - Interface between file system and ActionView. - Locates proper template based on view paths and requested extension ( .js, .html etc. ).

* ActionView::Template - One object per template ( For example, usually there'll be one Template object for layout.html.erb and one for action.html.erb during a request ) - Holds local vars, file name, path etc. - Delegates compilation/rendering of the template to appropriate template handler

* ActionView::TemplateHandler - Mainly responsible for compilation of template and holding any handler specific information. Also used for fragment caching.