23 lines
707 B
Ruby
23 lines
707 B
Ruby
#-- encoding: UTF-8
|
|
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
|
|
|