Chris@909: module PrependEngineViews Chris@909: def self.included(base) Chris@909: base.send(:include, InstanceMethods) Chris@909: base.class_eval do Chris@909: alias_method_chain :add_engine_view_paths, :prepend Chris@909: end Chris@909: end Chris@909: Chris@909: module InstanceMethods Chris@909: # Patch Rails so engine's views are prepended to the view_path, Chris@909: # thereby letting plugins override application views Chris@909: def add_engine_view_paths_with_prepend Chris@909: paths = ActionView::PathSet.new(engines.collect(&:view_path)) Chris@909: ActionController::Base.view_paths.unshift(*paths) Chris@909: ActionMailer::Base.view_paths.unshift(*paths) if configuration.frameworks.include?(:action_mailer) Chris@909: end Chris@909: end Chris@909: end Chris@909: Chris@909: Rails::Plugin::Loader.send :include, PrependEngineViews Chris@909: