== Behavior Filters Experimental support for behavior processing filters. Adds support for: * Adding filters before, after, and around behavior processing * Rails-like filter interface * Adding filters for :self, :children, :descendants, or :all == Methods `before_filter` and `after_filter` work much like their equivalent in Rails. You can send it a block, symbol or class for filtering. Some of the differences are that it's passed the request and response objects as method parameters. The filter conditions are different as well. Instead of defining filters for actions you're defining filters on the page hierarchy. So specifying a list of actions using :only or :except doesn't make much sense. Instead, you define where you want the filter to run in the page hierarchy using :for. The valid options are :self, :children, :descendants, or :all. * :self - The filter is called for the behavior if it's at the current URL * :children - The filter is called for the direct child pages * :descendants - The filter is called for all child pages * :all - A shortcut, means the same thing as :for=>[:self, :children, :descendants] == Todo / Outstanding Issues * This still won't work well for a password protection behavior. A behavior needs to be able to force child pages _not_ to be cached. Or, to have the filters run before a page is fetched from cache. * Need to filter out unnecessary calls to filters. If a filters is marked as :children and :descendants, it will be called twice when it's a child. Probably not a great idea.