diff vendor/plugins/prepend_engine_views/init.rb @ 0:513646585e45

* Import Redmine trunk SVN rev 3859
author Chris Cannam
date Fri, 23 Jul 2010 15:52:44 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/plugins/prepend_engine_views/init.rb	Fri Jul 23 15:52:44 2010 +0100
@@ -0,0 +1,21 @@
+module PrependEngineViews
+  def self.included(base)
+    base.send(:include, InstanceMethods)
+    base.class_eval do
+      alias_method_chain :add_engine_view_paths, :prepend
+    end
+  end
+
+  module InstanceMethods
+    # Patch Rails so engine's views are prepended to the view_path,
+    # thereby letting plugins override application views
+    def add_engine_view_paths_with_prepend
+      paths = ActionView::PathSet.new(engines.collect(&:view_path))
+      ActionController::Base.view_paths.unshift(*paths)
+      ActionMailer::Base.view_paths.unshift(*paths) if configuration.frameworks.include?(:action_mailer)
+    end
+  end
+end
+
+Rails::Plugin::Loader.send :include, PrependEngineViews
+