require 'minus_mor'
# Assign a new template type
ActionView::Base::register_template_handler :ejs, MinusMOR::View
Mime::Type.register "text/javascript", :js, %w( application/javascript application/x-javascript ), %w( ejs rjs )
# Exempt .ejs from layout but works only partially
ActionController::Base.exempt_from_layout(/\.ejs$/)
class ActionView::Base
def find_template_extension_from_handler(template_path, formatted = nil)
checked_template_path = formatted ? "#{template_path}.#{template_format}" : template_path
template_handler_preferences.each do |template_type|
extension =
case template_type
when :javascript
(template_exists?(checked_template_path, :ejs) && :ejs) ||
template_exists?(checked_template_path, :rjs) && :rjs
when :delegate
delegate_template_exists?(checked_template_path)
else
template_exists?(checked_template_path, template_type) && template_type
end
if extension
return formatted ? "#{template_format}.#{extension}" : extension.to_s
end
end
nil
end
end