def eager_cache(trigger_action, target = trigger_action, conditions = {}, &blk)
target, conditions = trigger_action, target if target.is_a? Hash
if target.is_a? Array
target_controller, target_action = *target
else
target_controller, target_action = self, target
end
after("_eager_cache_#{trigger_action}_to_#{target_controller.name.snake_case}__#{target_action}_after", conditions.only(:if, :unless).merge(:with => [target_controller, target_action, conditions, blk], :only => trigger_action))
alias_method "_eager_cache_#{trigger_action}_to_#{target_controller.name.snake_case}__#{target_action}_after", :_eager_cache_after
end