view vendor/plugins/prepend_engine_views/init.rb @ 547:56ad0c490f5e feature_36

Closes Bug #217. The project_id parameter is now being sent in all links. This may generate some errors when outside a project, but I shall file new issues as I detect them.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Fri, 29 Jul 2011 19:15:26 +0100
parents 513646585e45
children
line wrap: on
line source
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